// main函数可以有两个参数,一个是argc,一个argv
// C语言规定了main函数只能有两个参数
// 第一个参数是捕获的函数参数的个数
// 第二个参数是一个指向一组字符串的字符指针数组
int main(int argc, char* argv[]) {
//
}
例子:
[chenhanxuan@idiospace code]$ cat test.c
#include <stdio.h>
int main(int argc, char* argv[]) {
fprintf(stdout, "argc = %d\n", argc);
int i = 0;
for (i = 0 ; i < argc ; ++i)
fprintf(stdout, "argv[%d] = %s\n", i, argv[i]);
return 0;
}
运行结果:
[chenhanxuan@idiospace code]$ ./a.out para1 para2 para3
argc = 4
argv[0] = ./a.out
argv[1] = para1
argv[2] = para2
argv[3] = para3
另外,这里的char* argv[]是一个指针数组,传入的参数赋值给argv
C语言中,一个数组的名称规定为这个数组的首地址,如int a[] 中 a == &a[0]
即argv == &argv[0]
而argv[0]本身是一级指针,所以argv是二级指针
所以另一种写法是:
[chenhanxuan@idiospace code]$ cat test1.c
#include <stdio.h>
int main(int argc, char** argv) {
fprintf(stdout, "argc = %d\n", argc);
int i = 0;
for (i = 0 ; i < argc ; ++i)
fprintf(stdout, "argv[%d] = %s\n", i, argv[i]);
return 0;
}
运行结果:
[chenhanxuan@idiospace code]$ ./test1
argc = 1
argv[0] = ./test1