考慮到main函數(shù)的特殊性,lz不明白這個問題可以理解。
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務至上”的服務理念,堅持“二合一”的優(yōu)良服務模式,真誠服務每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及成都LED顯示屏等,在重慶網站建設、營銷型網站、WAP手機網站、VI設計、軟件開發(fā)等項目上具有豐富的設計經驗。
main()是省略了返回值類型,C語言會默認認為成main的類型為int,在main()的函數(shù)體內要返回一個值,如return 0;
而void main()的返回值是void類型,也就是說沒有返回值。這樣在main()的函數(shù)體內你就不用寫return 0;或者return 1;之類的返回語句。
在一個程序中,可以說你看不出兩者的差別,因為main()是C語言的入口點,入口點如果返回了程序也就結束了,因此C語言的這個特性似乎沒用??蓻]用的話,C語言的設計者為什么要這么做呢?!肯定有用。
沒錯,前面我說的是在一個程序中,它似乎沒用??扇绻粋€程序prog2調用另一個程序prog1的話(這里指的是prog2直接調用prog1編譯好的可執(zhí)行文件),那么這個特性就有用了。因為prog2要知道prog1運行之后的狀態(tài)。比如你用C寫了一個刪除文件的程序(暫且命名為delf),然后用另一個程序去調用delf,那么調用結果怎么樣???這個文件是否刪掉了?這是int main()就會派上用場了。C語言中默認的main如果返回為0,那么這個程序調用就成功了,其他值,則為不同的錯誤代碼。在你的delf程序中,如果那個文件刪除成功,那么就在int main()中返回0,其他調用delf的程序就知道,噢,這個操作成功了。
在unix/linux系統(tǒng)中的很多命令都是通過這種方式獲得運行結果的。
關于譚浩強的書,我想不用多說,發(fā)行量說明了一切。畢竟第二版在編寫的時候還比較早,而第三版根據(jù)很多現(xiàn)在的需要進行了改寫,內容當然會好些。鑒于lz是初學C,其實大可不必在這個問題上浪費太多時間,當你有了更多的項目經驗,對這個問題會有更深刻的理解。
上面我已經給出了main()、int main()和void main()的區(qū)別,但建議lz忽略這個差別,認為成二者一樣,先把C的其他部分學好。至于只寫成main(),我并不推薦,就算編譯器通過了,這種編程的風格也太不嚴謹,不利于好的習慣的養(yǎng)成。
C語言中main函數(shù)可以在任意位置。?
每一個C語言程序有且只有一個主函數(shù)(main()),且程序必須從main()函數(shù)開始,它是程序開始時調用的第一個函數(shù)。函數(shù)定義形式:【int main(void){}】。
C語言規(guī)定,在一個C程序中,main()函數(shù)可以在任意位置。
解析:
每個C程序有且只有一個主函數(shù)(main),且程序必須從main()函數(shù)開始執(zhí)行,而且main()函數(shù)可以放在程序中的任意位置。
詳細介紹:
在宿主環(huán)境中編譯的C程序必須定義一個名為main的函數(shù),這是程序開始時調用的第一個函數(shù)。
main()函數(shù)的定義有以下兩種形式:
(1)函數(shù)沒有參數(shù),返回值為int類型。int main( void ) { /*…*/ }.
(2)函數(shù)有兩個參數(shù),類型分別是int和char**,返回值是int類型。int main( int argc, char *argv ) { /*…*/ }.
這兩種定義方式都符合C語言標準。除此之外,許多C的實現(xiàn)版本還支持第三種、非標準語法的定義方式:int main( int argc, char *argv, char *envp ) { /*…*/ }.
函數(shù)返回值是int,有3個參數(shù):第一個是int,另外兩個是char**。
在調用可執(zhí)行程序時,可以通過main函數(shù)的參數(shù)將命令行的調用參數(shù)傳遞給main函數(shù)。
事實上,main()函數(shù)既可以是無參函數(shù),也可以是有參的函數(shù)。對于有參的形式來說,就需要向其傳遞參數(shù)。
從函數(shù)參數(shù)的形式上看,包含一個整型和一個指向字符指針的指針。當一個C的源程序經過編譯、鏈接后,會生成擴展名為.EXE的可執(zhí)行文件(對windows操作系統(tǒng)而言),這是可以在操作系統(tǒng)下直接運行的文件,換句話說,就是由系統(tǒng)來啟動運行的。由系統(tǒng)在啟動運行時傳遞參數(shù)。
在操作系統(tǒng)環(huán)境下,一條完整的運行命令應包括兩部分:命令與相應的參數(shù)。其格式為:
命令參數(shù)1參數(shù)2....參數(shù)nt;
此格式也稱為命令行。命令行中的命令就是可執(zhí)行文件的文件名,其后所跟參數(shù)需用空格分隔,并為對命令的進一步補充,也即是傳遞給main()函數(shù)的參數(shù)。
命令行與main()函數(shù)的參數(shù)存在如下的關系:
設命令行為:program str1 str2 str3 str4 str5
擴展資料:
main 函數(shù)的返回值類型必須是 int ,這樣返回值才能傳遞給程序的激活者(如操作系統(tǒng))。
如果 main 函數(shù)的最后沒有寫 return 語句的話,C99 規(guī)定編譯器要自動在生成的目標文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不過,我還是建議你最好在main函數(shù)的最后加上return 語句,雖然沒有這個必要,但這是一個好的習慣。
也就是說在最新的C語言標準中強制要求main函數(shù)的返回值類型為int,main函數(shù)的返回值是傳遞給操作系統(tǒng),讓操作系統(tǒng)判斷程序的執(zhí)行情況(是正常結束還是出現(xiàn)異常)。
參考資料來源:百度百科-main函數(shù)
main(),在c語言中稱之為“主函數(shù)”,一個c程序有且僅有一個main函數(shù),任何一個c程序總是從main函數(shù)開始執(zhí)行,main函數(shù)后面的一對圓括號不能省略。
具體形式如下:
main()
{ ? }
被大括號{ }括起來的內容稱為main函數(shù)的函數(shù)體,這部分內容就是計算機要執(zhí)行的內容。
在{ ?}里面每一句話后面都有一個分號(;),在c語言中,我們把以一個分號結尾的一句話叫做一個c語言的語句,分號是語句結束的標志。
擴展資料:
函數(shù)是一組一起執(zhí)行一個任務的語句。每個 C 程序都至少有一個函數(shù),即主函數(shù)?main()?,所有簡單的程序都可以定義其他額外的函數(shù)。
您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來決定的,但在邏輯上,劃分通常是根據(jù)每個函數(shù)執(zhí)行一個特定的任務來進行的。
函數(shù)聲明告訴編譯器函數(shù)的名稱、返回類型和參數(shù)。函數(shù)定義提供了函數(shù)的實際主體。
C 標準庫提供了大量的程序可以調用的內置函數(shù)。例如,函數(shù)?strcat()?用來連接兩個字符串,函數(shù)?memcpy()?用來復制內存到另一個位置。
函數(shù)還有很多叫法,比如方法、子例程或程序,等等。
參考資料來源:百度百科-C語言函數(shù)
名稱欄目:c語言的main函數(shù) c語言的main函數(shù)必須放在程序的開始部分
本文來源:http://www.rwnh.cn/article18/ddosgdp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、標簽優(yōu)化、品牌網站設計、網站排名、云服務器、網站營銷
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)