[轉帖]int main(int argc,char * argv[]) windows 下的使用
通常對於初學C語言的同學來說,我們的main函數,都是沒有形參的,那麼這是怎麼回事呢?
根據C語言規定,main函數的參數只能有兩個,習慣上這兩個參數為argc和argv,格式如下:
int main(int argc,char * argv[])
{
//
program
//
}
解析:此時,main函數有兩個形參。第一個argc為int整形。第二個為指標數組。也就是這個形參是個數組,這個數組的成員是指標。其指標指向char型。
argc記錄了使用者在運行程式的命令列中輸入的參數的個數。
arg[]指向的數組中至少有一個字元指標,即arg[0].他通常指向程式中的可執行檔的檔案名稱。在有些版本的編譯器中還包括程式
檔案所在的路徑。
這句話說的實在是太籠統了,讓我們同學不明所以。
是這樣的。
在調用一個可執行程式時,某些情況下需要向程式傳遞參數。如我們可以在控制台中鍵入notepad.exe,
斷行符號後將執行記事本程式。如果我們希望在開啟notepad時同時開啟一個文字檔,可以在notepad.exe
後面跟上檔案的路徑和名字,如notepad.exe example.txt(檔案在當前路徑)。
那麼程式中如何能得到這些輸入參數呢?這個工作是編譯器幫我們完成的,編譯器將輸入參數的資訊
放入main函數的參數列表中。
main函數的參數列表儲存了輸入參數的資訊,第一個參數argc記錄了輸入參數的個數,
第二個參數是字串數組的,字串數組的每個單元是char*類型的,指向一個c風格字串。
以notepad.exe example.txt為例
argc是2,就是說argv數組中有兩個有效單元
第一單元指向的字串是"notepad.exe"
第二單元指向的字串是"example.txt"
argv數組中的第一個單元指向的字串總是可執行程式的名字,以後的單元指向的字串依次是程式調用時的參數。
這個賦值過程是編譯器完成的,我們只需要讀出資料就可以了。
-----------------------------------------------------------------------------
一下是執行個體代碼:C語言驗證。
#include <stdio.h>
int main(int argc,char * argv[])
{
int i;
printf("%d",argc);
for (i=0;i<argc;i++)
{
printf("%s\n",argv[i]);
}
scanf("&i");
}
最後經過編譯和串連會成為可執行程式:main.exe。
我們可以通過開始-〉運行->輸入cmd。出現一下視窗。
通過cd命令進入main.exe所在目錄。然後鍵入main chen hui jie斷行符號即可觀看結果。
下面介紹另一種驗證他得方法:
通過強大的運行
之所以可以在該文本處鍵入cmd。開啟控制台,是因為在C:\WINDOWS\system32路徑下,有
同樣的道理,我們將main.exe,複製粘貼到C:\WINDOWS\system32路徑下,即可,方便的只需在運行裡輸入main [實參]……即可。
如:
結果如下:
本帖引自http://hi.baidu.com/grandyang/item/907649c064cc152c47d5c00a