到目前為此,使用的main()函數(shù)是一無參函數(shù),實際上main()函數(shù)可以帶參數(shù),指針數(shù)組的一個重要應(yīng)用就是作為main函數(shù)的形參。
main()函數(shù)帶參數(shù)的形式為:
main(argc,argv)
int argc:
char *argv[];
main()函數(shù)對應(yīng)的實參由程序運行時的命令行參數(shù)給定。參數(shù)argc為整型,對應(yīng)命令行中參數(shù)個數(shù),包括執(zhí)行文件名;參數(shù)argv為字符型的指針數(shù)組,每個數(shù)組元素是一指向字符數(shù)據(jù)的指針,對應(yīng)命令行中各參數(shù)的名字。
使用命令行參數(shù)將C語言程序看作操作系統(tǒng)下的函數(shù),main()函數(shù)的參數(shù)是在系統(tǒng)與程序之間傳遞數(shù)據(jù)。
命令行的一般形式為:
命令名參數(shù)1參數(shù)2…參數(shù)n
假定程序運行時發(fā)出如下命令:
filename changsha beijing
則mian()函數(shù)中,argc=3,表示有三個命令行參數(shù)(文件名也算一個),而argvE03指向“filel”,argv[1]指向“changsha”,argv[2]指向“beijing”。
例:編寫程序,實現(xiàn)DOS的ECI-IO命令。
EChO命令的功能是“參數(shù)回顯”,不包括\"ECHO”。
程序如下:
/*程序10一23,參數(shù)回顯程序ECHO.c*/
main(argc,argv) Int argc 0
char*argv[];
{char**p=argv,
while(aRgc)>1)
{p++;
printf(\"%s\",”*);
argc--;
}
假定以下面的命令行形式運行程序:
ECHO HU NAN COMPUTER COLLEGE
運行結(jié)果:HU NAN COMPUTER COLLEGE
main()函數(shù)帶參數(shù)的形式為:
main(argc,argv)
int argc:
char *argv[];
main()函數(shù)對應(yīng)的實參由程序運行時的命令行參數(shù)給定。參數(shù)argc為整型,對應(yīng)命令行中參數(shù)個數(shù),包括執(zhí)行文件名;參數(shù)argv為字符型的指針數(shù)組,每個數(shù)組元素是一指向字符數(shù)據(jù)的指針,對應(yīng)命令行中各參數(shù)的名字。
使用命令行參數(shù)將C語言程序看作操作系統(tǒng)下的函數(shù),main()函數(shù)的參數(shù)是在系統(tǒng)與程序之間傳遞數(shù)據(jù)。
命令行的一般形式為:
命令名參數(shù)1參數(shù)2…參數(shù)n
假定程序運行時發(fā)出如下命令:
filename changsha beijing
則mian()函數(shù)中,argc=3,表示有三個命令行參數(shù)(文件名也算一個),而argvE03指向“filel”,argv[1]指向“changsha”,argv[2]指向“beijing”。
例:編寫程序,實現(xiàn)DOS的ECI-IO命令。
EChO命令的功能是“參數(shù)回顯”,不包括\"ECHO”。
程序如下:
/*程序10一23,參數(shù)回顯程序ECHO.c*/
main(argc,argv) Int argc 0
char*argv[];
{char**p=argv,
while(aRgc)>1)
{p++;
printf(\"%s\",”*);
argc--;
}
假定以下面的命令行形式運行程序:
ECHO HU NAN COMPUTER COLLEGE
運行結(jié)果:HU NAN COMPUTER COLLEGE