第一个参数argc表示参数个数,第二个参数argv是参数组,这个作用是什么
第一个参数argc表示参数个数,第二个参数argv是参数组 这个作用是什么呢?
第一个参数argc表示参数个数,第二个参数argv是参数组 这个作用是什么呢?
2024-02-02
我也是新手,如果我没记错的话,是用于在命令行执行的时候,传递参数用的。就像我们在命令行窗口运行命令传递的参数一样,这里传递的也是字符串参数。第二个二级指针指向一个数组中。而这个数组类似我们在C语言中定义的一个指针数组。这里说起来话就长了,。
char *strings[] = { "Hello", "World", "C", "Programming" };
类似于这个数组,就是一个指针数组;这个指针数组里面有四个元素,这四个元素的值均为指针,其指向这四个常量字符串的首地址。例如访问第一个常量字符串可以使用strings[0], 这个“strings[0]”返回值是第一个常量字符串的首地址。这个常量字符串占用6字节,末尾一个0值。
说远了,我们知道数组名是一个指针,也就是"strings",这个指针是一个指向指针的指针,也就是二级指针。若要传递给一个函数,函数的形式参数就得是一个二级指针,然后直接将strings填上去即可。例如:
main(sizeof(strings), strings);
sizeof(strings)返回值为4,因为数组里面就存了四个指针值。
这样我们在程序内就可以访问到传入的任意一个字符串了。要问有几个字符串,我们可以直接通过main函数的第一个参数的值获取下来,例如要访问第二个字符串做printf打印,就可以这样写:
printf("%s\n", argv[1]);
这样就可以打印出第二个字符串了。"argv[1]"返回的就是第二个字符串的首地址了;
可能有没有描述清楚的,可以再进行提问哈。我也是新手,咱们共同交流学习。
望采纳
举报