帶命令行參數(shù)的main函數(shù)詳解.doc

帶命令行參數(shù)的main函數(shù)詳解.doc

ID:50838711

大小:40.95 KB

頁數(shù):4頁

時間:2020-03-15

帶命令行參數(shù)的main函數(shù)詳解.doc_第1頁
帶命令行參數(shù)的main函數(shù)詳解.doc_第2頁
帶命令行參數(shù)的main函數(shù)詳解.doc_第3頁
帶命令行參數(shù)的main函數(shù)詳解.doc_第4頁
資源描述:

《帶命令行參數(shù)的main函數(shù)詳解.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、帶命令行參數(shù)的main函數(shù)詳解[轉(zhuǎn)載]C的設(shè)計原則是把函數(shù)作為程序的構(gòu)成模塊。main()函數(shù)稱之為主函數(shù),一個C程序總是從main()函數(shù)開始執(zhí)行的。一、main()函數(shù)的形式???在最新的C99標(biāo)準(zhǔn)中,只有以下兩種定義方式是正確的:?。▍㈤咺SO/IEC9899:1999(E)5.1.2.2.1Programstartup)???????intmain(void)--無參數(shù)形式????????{?????????...????????return0;????????}????????intmain(intargc,char*argv[])--帶參數(shù)形式????????{

2、?????????...????????return0;????????}???int指明了main()函數(shù)的返回類型,函數(shù)名后面的圓括號一般包含傳遞給函數(shù)的信息。void表示沒有給函數(shù)傳遞參數(shù)。關(guān)于帶參數(shù)的形式,我們等會討論。?瀏覽老版本的C代碼,將會發(fā)現(xiàn)程序常常以????main()???這種形式開始。C90標(biāo)準(zhǔn)允許這種形式,但是C99標(biāo)準(zhǔn)不允許。因此即使你當(dāng)前的編譯器允許,也不要這么寫。?你還可能看到過另一種形式:???voidmain()????有些編譯器允許這種形式,但是還沒有任何標(biāo)準(zhǔn)考慮接受它。C++之父BjarneStroustrup在他的主頁上的FAQ中明確

3、地表示:voidmain()的定義從來就不存在于?C++?或者C。所以,編譯器不必接受這種形式,并且很多編譯器也不允許這么寫。?堅持使用標(biāo)準(zhǔn)的意義在于:當(dāng)你把程序從一個編譯器移到另一個編譯器時,照樣能正常運行。二、main()函數(shù)的返回值???從前面我們知道m(xù)ain()函數(shù)的返回值類型是int型的,而程序最后的return0;正與之遙相呼應(yīng),0就是main()函數(shù)的返回值。那么這個0返回到那里呢?返回給操作系統(tǒng),表示程序正常退出。因為return語句通常寫在程序的最后,不管返回什么值,只要到達(dá)這一步,說明程序已經(jīng)運行完畢。而return的作用不僅在于返回一個值,還在于結(jié)束函

4、數(shù)。?現(xiàn)在我們來做一個小試驗(注意:本人的系統(tǒng)是WindowsXP,編譯環(huán)境是TC)來觀察main()函數(shù)的返回值。編寫如下代碼并編譯運行://a.c????#include"stdio.h"????intmain(void)????{????????printf("Iloveyou.");????????return0;????}???將這個文件保存為a.c,編譯運行后會生成一個a.exe文件?,F(xiàn)在打開命令提示符,在命令行里運行剛才編譯好的可執(zhí)行文件,然后輸入??echo%ERRORLEVEL%,回車,就可以看到程序返回一個0。如果把return0;改為return99;

5、,那么很顯然,再次執(zhí)行上述步驟以后你可以看到程序返回99。要是你這樣寫return99.99;那還是返回99,因為99.99被傳給操作系統(tǒng)之前,被強制類型轉(zhuǎn)換成整數(shù)類型了。?現(xiàn)在,我們把a.c改回原來的代碼,然后再編寫另一個程序b.c://b.c????#include"stdio.h"????intmain(void)????{????????printf("/nI'mtoo.");????????return0;?????}????編譯運行后打開命令提示符,在命令行里輸入a&&b回車,這樣你就可以看到《人鬼情未了》里面經(jīng)典的愛情對白:????Iloveyou.????I

6、'mtoo.???&&的含義是:如果&&前面的程序正常退出,則繼續(xù)執(zhí)行&&后面的程序,否則不執(zhí)行。所以,要是把a.c里面的return0;刪除或者改為return99;,那么你只能看到Iloveyou.。也就是說,程序b.c就不執(zhí)行了?,F(xiàn)在,大家該明白return0;的作用了吧。三、main()函數(shù)的參數(shù)???C編譯器允許main()函數(shù)沒有參數(shù),或者有兩個參數(shù)(有些實現(xiàn)允許更多的參數(shù),但這只是對標(biāo)準(zhǔn)的擴(kuò)展)。這兩個參數(shù),一個是int類型,一個是字符串類型。第一個參數(shù)是命令行中的字符串?dāng)?shù)。按照慣例(但不是必須的),這個int參數(shù)被稱為argc(argumentcount)。

7、大家或許現(xiàn)在才明白這個形參為什么要取這么個奇怪的名字吧,呵呵!至于英文的意思,自己查字典吧。第二個參數(shù)是一個指向字符串的指針數(shù)組。命令行中的每個字符串被存儲到內(nèi)存中,并且分配一個指針指向它。按照慣例,這個指針數(shù)組被稱為argv(argumentvalue)。系統(tǒng)使用空格把各個字符串格開。一般情況下,把程序本身的名字賦值給argv[0],接著,把最后的第一個字符串賦給argv[1],等等。?現(xiàn)在我們來看一個例子://c.c???????#include"stdio.h"????intmain(intargc,char

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。