为了账号安全,请及时绑定邮箱和手机立即绑定

第一个参数argc表示参数个数,第二个参数argv是参数组,这个作用是什么

第一个参数argc表示参数个数,第二个参数argv是参数组 这个作用是什么呢?

正在回答

3 回答

我也是新手,如果我没记错的话,是用于在命令行执行的时候,传递参数用的。就像我们在命令行窗口运行命令传递的参数一样,这里传递的也是字符串参数。第二个二级指针指向一个数组中。而这个数组类似我们在C语言中定义的一个指针数组。这里说起来话就长了,。

1
char *strings[] = { "Hello""World""C""Programming" };

类似于这个数组,就是一个指针数组;这个指针数组里面有四个元素,这四个元素的值均为指针,其指向这四个常量字符串的首地址。例如访问第一个常量字符串可以使用strings[0], 这个“strings[0]”返回值是第一个常量字符串的首地址。这个常量字符串占用6字节,末尾一个0值。 

说远了,我们知道数组名是一个指针,也就是"strings",这个指针是一个指向指针的指针,也就是二级指针。若要传递给一个函数,函数的形式参数就得是一个二级指针,然后直接将strings填上去即可。例如:

1
main(sizeof(strings), strings);

sizeof(strings)返回值为4,因为数组里面就存了四个指针值。


这样我们在程序内就可以访问到传入的任意一个字符串了。要问有几个字符串,我们可以直接通过main函数的第一个参数的值获取下来,例如要访问第二个字符串做printf打印,就可以这样写:

1
printf("%s\n", argv[1]);

这样就可以打印出第二个字符串了。"argv[1]"返回的就是第二个字符串的首地址了;



0 回复 有任何疑惑可以回复我~

dos命令用过吧,命令后面不是要根一些参数吗,这两个参数就是返回你从命令行给的参数的,你可以有这两个参数实现和Dos命令一样的功能,在你的程序里根据返回的参数来进程不同的程序逻辑的编写

0 回复 有任何疑惑可以回复我~

我也是新手,如果我没记错的话,是用于在命令行执行的时候,传递参数用的。就像我们在命令行窗口运行命令传递的参数一样,这里传递的也是字符串参数。第二个二级指针指向一个数组中。而这个数组类似我们在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]"返回的就是第二个字符串的首地址了;


可能有没有描述清楚的,可以再进行提问哈。我也是新手,咱们共同交流学习。

望采纳

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
趣味 C++ 入门
  • 参与学习       31404    人
  • 解答问题       191    个

C++ 入门,开启趣味学习之旅,揭开 C++ 的神秘面纱,让你不再望而生畏。

进入课程

第一个参数argc表示参数个数,第二个参数argv是参数组,这个作用是什么

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号