我们知道main函数的标准原型应该是int main(int argc, char *argv[]);。argc是命令行参数的个数,argv是一个指向指针的指针。那为什么要写成char *argv[]而不写成char argv呢?这样写给表示argv不是指向单个指针,而是指向一个指针数组的首元素,数组中每个元素都是char ***指针,指向一个命令行参数字符串。
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
printf("argv[%d]=%s\n", i, argv[i]);
return 0;
}
在Ubuntu下运行该程序,结果如上图。注意到程序名也算一个命令行参数,所以执行**./a.out a b c**这命令时,argc是4。