1.说明:
当系统调用主函数时,系统也可将参数 (命令行) 传给主函数,这个参数可以认为是 main函数的形式参数。
2.格式:
main(int argc, char *argv[ ])
规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,
(由于main函数不能被其它函数调用,那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。)
3.注意:
main 的两个形参和命令行中的参数在位置上不是一 一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。
4.例子
#include <stdio.h>
int main(int argc, int * argv[],int * env[]) //(参数个数,指向字符串的指针,指向环境变量的指针)
{
int i;
for(i =0; i < argc; i++) //argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。
{
printf("%5s",argv[i]);
}
printf("\n");
i = 0;
while( *(env + i) != NULL)
{
printf("%5s\n",env[i]);
i++;
}
return 0;
//注意 : argv[0] 是 ./filename