刚刚学习C++的朋友可能会遇到main函数的参数设置问题,不理解为什么main函数也要参数。
main函数的参数通常这样设置:
int main(int argc,char** argv)
argc 是 argument count 的简称,是传入参数的个数,argv是二维的字符串指针,是argument variable的简称,实际上这个就是一个字符串数组。
main函数是由执行整个exe文件的时候调用的,我们如果在cmd下运行程序exe,或者写bat脚本文件去调用exe,就可能会用到参数传入的问题,这里面的
参数就是这样用。
下面举个例子:
#include<cstdio>
#include<cstring>
int main(int argc,char** argv)
{
printf("there are %d strings\n",argc);
for(int i = 0;i < argc;i++)
printf("%s\n",argv[i]);
}
这段代码是输出传入参数的个数,还有具体什么参数。
整个程序编译出来的exe叫做test.exe
cmd下运行得出的结果是:
可以看到,执行test.exe 这个本身是一个字符串。
加上传入的参数str1 和 str2,总共有3个字符串。
同理,bat脚本调用的使用也是这样,使用的时候注意。
不要以为test.exe这个不是传入参数。
所以代码里使用时候一般不用程序名字的话,是从argv[1] 开始。