在c语言编程中,经常可以看到如下的main函数声明:
int main(int argc, char *argv[])
那么argc和argv[ ]是干什么用的呢?
其中argc是外部输入的参数个数,argv[ ]是参数的字符串数组。光这么说大家可能不太明白,那我们来看一个示例,如下所示的C文件
#include <>
int main(int argc, char *argv[])
{
printf("argc is %d\n",argc);
for(int i=0;i<argc;i++)
{
printf("argv[%d] is: %s\n",i,argv[i]);
}
return 0;
}
这几行代码比较简单,首先打印argc的值,然后打印出所有argv[ ]数组的字符串。
采用下面命令对c文件进行编译
gcc -o argtest
编译后生成可执行文件argtest,执行下面的命令
./argtest
则程序输出结果为
argc is 1
argv[0] is: ./argtest
这表明在执行这个程序时,输入的参数只有一个,而且这个参数就是执行程序的这个命令。
执行下面的命令
./argtest 1234 abcd
则程序输出结果为
argc is 3
argv[0] is: ./argtest
argv[1] is: 1234
argv[2] is: abcd
这表明程序输入的参数有3个,命令的后面两个用空格分隔的字符串都传给了main函数。
通过argc和argv[ ]我们就可以通过命令向程序传递参数了。