main()稱之為主函數(shù)团南,是所有程序運(yùn)行的入口群凶。其余函數(shù)分為有參或無(wú)參兩種插爹,均由main()函數(shù)或其它一般函數(shù)調(diào)用,若調(diào)用的是有參函數(shù),則參數(shù)在調(diào)用時(shí)傳遞赠尾。
C/C++語(yǔ)言中的main函數(shù)力穗,經(jīng)常帶有參數(shù)argc,argv气嫁,如下:
int main(int argc, char** argv)
int main(int argc, char* argv[])
從函數(shù)參數(shù)的形式上看当窗,包含一個(gè)整型和一個(gè)指針數(shù)組。當(dāng)一個(gè)C/C++的源程序經(jīng)過編譯寸宵、鏈接后崖面,會(huì)生成擴(kuò)展名為.EXE的可執(zhí)行文件,測(cè)試生成的exe文件就是由系統(tǒng)來(lái)啟動(dòng)運(yùn)行的梯影。同時(shí)因?yàn)閷?duì)main()函數(shù)既然不能由其它函數(shù)調(diào)用和傳遞參數(shù)嘶朱,就只能由系統(tǒng)在啟動(dòng)運(yùn)行時(shí)傳遞參數(shù)了。
在操作系統(tǒng)環(huán)境下光酣,一條完整的運(yùn)行命令應(yīng)包括兩部分:命令與相應(yīng)的參數(shù)疏遏。其格式為:命令 參數(shù)1 參數(shù)2....參數(shù)n…
此格式也稱為命令行。命令行中的命令就是可執(zhí)行文件的文件名救军,其后所跟參數(shù)需用空格分隔财异,并為對(duì)命令的進(jìn)一步補(bǔ)充,也即是傳遞給main()函數(shù)的參數(shù)唱遭。
命令行與main()函數(shù)的參數(shù)存在如下的關(guān)系:
設(shè)命令行為:program str1 str2 str3 str4 str5
其中program為文件名戳寸,也就是一個(gè)由program.c經(jīng)編譯、鏈接后生成的可執(zhí)行文件program.exe拷泽,其后各跟5個(gè)參數(shù)疫鹊。對(duì)main()函數(shù)來(lái)說(shuō),它的參數(shù)argc記錄了命令行中命令與參數(shù)的個(gè)數(shù)司致,共6個(gè)拆吆,指針數(shù)組的大小由參數(shù)argc的值決定,即為char*argv[6]脂矫。
代碼示例
#include<iostream>
using namespace std;
int main(int argc,char **argv){
cout << "argc:" << argc << endl;
for(int i=0;i<argc;i++)
cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
return 0;
}