C语言编程关于 main(int argc, char** argv) 的“小姿势”
1.c语言编程刚入门的新同学,绝大多数会看到“main()”函数,书里写的是这样:
void main(void)
{
...
}
2.但是一看别人的工程代码,经常看到是这样:
#include <stdio.h>
int main(int argc, char** argv)
{
...
return 0;
}
3.其实,int argc记录了main函数执行前的传入参数的个数, char** argv是用来记录传入参数的值。
4.下面用一个小例子做个实验就懂了:
新建base.c文件,写入以下代码:
#include <stdio.h>
int main(int argc, char** argv)
{
int i;
printf("argc = %d\n", argc);
for(i = 0; i < argc; i++) {
printf("argv[%d] is: %s\n", i, argv[i]);
}
return 0;
}
5.gcc编译下base.c,并执行,得到结果如下:
zhong@zhong:~/workspace/linux_test$ gcc base.c
zhong@zhong:~/workspace/linux_test$ ./a.out one two three four five six seven eight nine ten
argc = 11
argv[0] is: ./a.out
argv[1] is: one
argv[2] is: two
argv[3] is: three
argv[4] is: four
argv[5] is: five
argv[6] is: six
argv[7] is: seven
argv[8] is: eight
argv[9] is: nine
argv[10] is: ten
zhong@zhong:~/workspace/linux_test$
6.可见:
argc = 11,argv[0] is: ./a.out,也就是说程序执行时,默认第一个参数是可执行文件的名字,后面依次是传入的参数。