正在查找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]
相同
因此,如果havechar*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);
}