關於c++ Main函數分析與講解

來源:互聯網
上載者:User

在c++的控制台程式開發過程中,很多人對與函數int main(int argc, char* argv[])不甚瞭解,經常會問一些基礎性的問題,剛開始以為只是個別的人不清楚,時間一長,發現不懂的人還是比較多的。當然對於這類情況,很多人選擇在DOS下運行,通過切換到目前的目錄,然後把參數來解決。其實這不是最好的辦法,而且每次調試和編譯都在DOS下進行,給程式開發帶來了諸多的不便,於是寫下這篇日記,希望能給那些不甚理解int main(int argc, char* argv[])函數的朋友一個解釋,能協助到你們不甚興奮。

       首先,來分析這個函數int main(int argc, char* argv[]),該函數是控制台程式的入口程式,C語言規定main函數的參數只能有兩個,習慣上這兩個參數寫為argc和argv,C語言還規定argc(第一個形參)必須是整型變數,argv( 第二個形參)必須是指向字串的指標數組。其中argc表示的是main函數接受的參數的個數,argv是參數值。在DOS提示符下命令列的一般形式為: C:\>可執行檔名 參數 參數。     下面,我們來看一個執行個體,在c++中if( argc == 2 &&  (pImg = cvLoadImage( argv[1], 0)) != 0 )有這個一個判斷函數,其中的意思是什麼呢?其是判斷main函數傳進來的參數是不是兩個,然後從第二個參數argv[1](數組下標從0開始)給出的路徑載入一幅映像,並判斷是否成功。但是參數是怎麼傳進去的呢?很多人都不明白。繼續以VC6.0環境為例進行講解,Main函數的參數是通過“Project-Settings“跳出對話方塊:   圖中的"Executable for debug session:下面的參數”D:\VCProjects\UltiApp\Debug\UltiApp.exe“表示的就是在DOS提示符下命令列的一般形式為: C:\>可執行檔名,即為main函數傳進去的第一個參數argv[0],下面的”123.JPG“就是第二個參數argv[1](如果123.JPG不在目前的目錄下的話,就要用絕對路徑),也即為上面程式pImg = cvLoadImage( argv[1], 0)中傳給cvLoadImage的參數argv[1],如果main函數需要傳入更多的參數,那麼就在Program arguments中輸入多個參數,每個參數用空格隔開,如123.JPG 234.JPG等。

聯繫我們

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