C++main函數argc和argv命令列參數

來源:互聯網
上載者:User

       眾所周知,每個C++程式都有一個main函數。main函數的兩個形參我們至今未曾看到,因為所有程式都沒有定義他們。迄今為止,所有的程式定義都是具有空形參的main函數。但是事實上,main函數是唯一不定義形參就含有形參的函數。這兩個形參分別是int 型和指向char指標數組的指標。整數參數包含了使用者為運行程式在命令列鍵入的實參數量,char*[]實參指向一個字元指標數組,數組本身又指向文本型命令列實參。雖然這兩個形參可以被任意命名,但約定為argc和argv,並需要在main函數的標頭檔中聲明。

int main(int argc, char* argv[]){  // to do what you design}

      argc形參包含的 技術值永遠不小於1,如果使用者在命令列鍵入實參,argc就有較高的計數值。argv指向的數值至少有一個char指標,這個指標指向程式的可執行檔名。如果argv大於1,隨著命令列上輸入若干命令列實參,argv[1],argb[2]則將分別指向對應的實參,多個實參用空格分開。

    下面用一個例子來說明:

int main(int argc, char* argv[]){cout<<"argc ="<<argc<<endl;int i;for (i=0; i<argc;++i){cout<<"argv["<<i<<"]="<<argv[i]<<endl;}getchar();return 0;}

運行結果如所示:

                                                                           

而在cmd下運行時,如果有多個參數輸入,如所示:

                                                                         

        從上面的圖可以看到,包括可執行檔一個輸入了三個參數,對應的argc=3,其他的參數如argv數組顯示的那樣。應用程式解釋命令列實參的意義,並對程式如何運行做相應的修改。命令列實參可以包含程式開關設定、模式、檔案清單和路徑說明等。

        另外,不同的編譯器和作業系統,對命令列的參數輸入可能存在不同的差別,有些編譯器要求實參前面必須有-或/(破折號或斜線)。

       本文主要內容節選自《C++大學自學教程》。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.