之前学习C语言一直停留在简单的int main()上,最近在学习其他内容时需要用到main函数的参数,所以又重新学习了一遍这方面的知识。
在带参数的main中,它接受两个参数,分别是int ,char **类型。所以函数原型可以写成int main (int ,char **)
不过出于方便,一般都会写成这样
int main(int argc,char *argv[])
首先将下这两个变量的名字的含义吧
argc 是argument count的缩写,表示参数的数量
argv 是argument vaule的缩写,表示参数的值
argv数组中存放的是char*类型的指针,这和上面的char ** 是等价的,由于数组做参数,也只是传递进去数组的地址,即指针,所以还是会被编译器编译成指针的指针(二级指针)。
然而我们在输入参数的时候无法避免要输入程序的名字,所以实际的参数指针从argv[1]开始存放。而argv[0]就存放了函数名字。
附上一个简单程序,大家体会一下。
#include <stdio.h>
int main(int argc,char *argv[])
{
if(argc==1)
{
printf("there is only one argument\n");
printf("%s\n",argv[0]);
}
else
{
int cnt=1;
while(cnt<argc)
{
printf("the %d argument is %s\n",cnt,argv[cnt]);
cnt++;
}
}
return 0;
}