c语言中argc和argv[ ]的作用及用法

时间:2024-10-23 11:16:59
在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[ ]我们就可以通过命令向程序传递参数了。