main函數能夠不帶參數,也能夠帶參數,這個參數能夠認爲是 main函數的形式參數。數組
C語言還規定argc(第一個形參)必須是整型變量,argv( 第二個形參)必須是指向字符串的指針數組。加上形參說明後,main函數的函數頭應寫爲:bash
main (int argc,char *argv[])。函數
因爲main函數不能被其它函數調用,所以不可能在程序內部取得實際值。那麼,在何處把實參值賦予main函數的形參呢? 實際上,main函數的參數值是從操做系統命令行上得到的。當咱們要運行一個可執行文件時,在$提示符下鍵入文件名,再輸入實際參數便可把這些實參傳送到main的形參中去。測試
$提示符下命令行的通常形式爲: ./a.out q1 q2 q3 q4 q5 q6spa
官方的說明是:argc保存的是命令行參數的數目,而argv是指向個參數的各指針所構成的數組。操作系統
下面新建一個test.c程序來測試一下。.net
1 #include <stdio.h> 2 int main(char argc,char *argv[]) 3 { 4 char i=0; 5 6 7 printf("argc is:%d \n",argc); 8 for(i=0;i<argc;i++) 9 { 10 printf("argv[%d] is:%s \n",i,argv[i]); 11 } 12 13 }
編譯,執行:命令行
由此,咱們能夠看出來,argc表示的是鍵入命令行的參數的個數,包括./a.out。argv[]存放的是指向各個參數的指針。鍵入的命令行以空格爲間隔,參數包括可執行文件a.out的位置(./a.out),'.'表示當前位置。指針