Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在查找argv[1][i]第二个指针数组的解释 #包括 int main(int argc,char*argv[]) { int i; i=0; 如果(argc!=2) 写入(1,“a\n”,2); 其他的 { 而(argv[1][i])/*_C - Fatal编程技术网

正在查找argv[1][i]第二个指针数组的解释 #包括 int main(int argc,char*argv[]) { int i; i=0; 如果(argc!=2) 写入(1,“a\n”,2); 其他的 { 而(argv[1][i])/*

正在查找argv[1][i]第二个指针数组的解释 #包括 int main(int argc,char*argv[]) { int i; i=0; 如果(argc!=2) 写入(1,“a\n”,2); 其他的 { 而(argv[1][i])/*,c,C,如果您调用可执行文件,例如,使用其中一个 #include <unistd.h> int main(int argc, char *argv[]) { int i; i = 0; if (argc != 2) write(1, "a\n", 2); else { while (argv[1][i]) /*<<< the box [] with i */

如果您调用可执行文件,例如,使用其中一个

#include <unistd.h>

int     main(int argc, char *argv[])
{
    int     i;

    i = 0;
    if (argc != 2)
        write(1, "a\n", 2);
    else
    {
        while (argv[1][i])  /*<<< the box [] with i */
        {
            if (argv[1][i] == 'a')  /*<<< and here */
            {
                write(1, "a", 1);
                break ;
            }
            i += 1;
        }
        write(1, "\n", 1);
    }
    return (0);
}
在C语言中,
*(p+i)
p[i]
相同

因此,如果have
char*argv[]
(指向char的指针数组),则argv[i]是一个
char*
。第二个索引将与上面的示例等效

如果我们添加一个额外的变量来删除第二个双间接寻址,则更容易理解

char *p;
else
{
char*参数=argv[1];
而(论点[i])/*现在很容易理解*/
{

if(argument[i]=='a')/*请阅读《谢谢》中有关数组、指针和多维数组的章节!我一直在互联网上寻找这些。这非常有用。
argc == 3

argv[0] ==> "./executable" or "program.exe"
argv[1] ==> "one"
argv[2] ==> "foobar"
argv[3] == NULL

argv[2][0] == 'f'
argv[2][1] == 'o'
argv[2][2] == 'o'
argv[2][3] == 'b'
argv[2][4] == 'a'
argv[2][5] == 'r'
argv[2][6] == 0
char *p;
    else
    {
        char *argument = argv[1];
        while (argument[i])  /* now it is very easy to understand */
        {
            if (argument[i] == 'a')  /*<<< and here */
            {
                write(1, "a", 1);
                break ;
            }
            i += 1;
        }
        write(1, "\n", 1);
    }