[轉帖]int main(int argc,char * argv[]) windows 下的使用

來源:互聯網
上載者:User
 [轉帖]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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.