1、定義
C語言規定main函數的參數只能有兩個,習慣上這兩個參數寫為argc和argv。因此,main函數的函數頭可寫為: main (argc,argv)C語言還規定argc(第一個形參)必須是整型變量,argv( 第二個形參)必須是指向字符串的指針數組。加上形參說明后,main函數的函數頭應寫為:
int main (int argc,char *argv[]){…} int main (int argc,char **argv){…}
其中第一個argc表示參數的個數;第二個參數中argv[0]為自身運行目錄路徑和程序名,argv[1]指向第一個參數、argv[2]指向第二個參數……
完整程序如下:
#include <iostream> #include <string> using namespace std; int main(int argc, char **argv) { string str; cout<<"argc:"<<argc<<endl; for (int i = 0; i != argc; ++i) { cout << "arg[" << i << "]" << argv[i] << endl; } return 0; }
2、執行
由於main函數不能被其它函數調用, 因此不可能在程序內部取得實際值。那么,在何處把實參值賦予main函數的形參呢? 實際上,main函數的參數值是從操作系統命令行上獲得的。當我們要運行一個可執行文件時,在Linux運行時,后面跟上參數即可把這些實參傳 送到main的形參中去。
在Linux下運行上面的程序結果為:
可以看出:arg[0]是程序的名稱,后面的參數,從arg[1]開始都按順序存放在字符數組中,argc數至少是1個。