这篇文章主要参考了这篇博文的内容自己去试了下,以填补一下C语言知识的空白
C语言命令行参数的使用
测试代码
#include <stdio.h>
void main(int argc,char** argv)
{
printf("%d\n",argc);
printf("%s\n",argv[0]);
printf("%s\n",argv[1]);
printf("%s\n",argv[2]);
}
参数说明
我们给main
函数传递两个参数argc和argv。
argc
是int
类型的,它表示的是命令行参数的个数。不用用户传递,它会根据用户从命令行输入的参数个数自动确定。
argv
是char**
类型的,它的作用是存储用户从命令行传递进来的参数。它的第一个成员是用户运行的程序名字
具体测试
将上面的代码保存为test.c,用gcc编译生成目标文件为test并进行后续测试
1.在命令行下直接运行程序,没有传递其它任何参数
2.在命令行下输入test hello world
可以看到argc
为3,第一个参数为test,第二个参数为hello,第三个参数为world
3.继续输入test hello world hello world
可以看到这时argc
变为5,argv
只输出了前面三个参数。当然还可以把后面的两个参数也进行输出。
4.如果命令行中传递的一个参数包括空格就需要用用“ ”将参数扩起来
我们将hello world整体当作一个参数传递就需要使用“hello world”。
需要注意的是argv的类型可以是char ** argv
,char argv[ ] [ ]
,char *argv[ ]