带参数的main函数和命令行参数

时间:2021-07-28 21:26:21

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