main()程序的入口

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、赤壁網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為赤壁等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
C語言中的主函數(shù)固定名為:main(),每個(gè)系統(tǒng)中必須有一個(gè),且只能有一個(gè)。它 是第一個(gè)運(yùn)行的函數(shù)。
一般情況下,main()寫在文件的最后面,其他被調(diào)用的函數(shù)放在前面,這樣定義函數(shù)之前可以不加聲明,如果放在主函數(shù)之后,則必須先聲明,再定義,再被調(diào)用。
main()程序的入口
C語言中的主函數(shù)固定名為:main(),每個(gè)系統(tǒng)中必須有一個(gè),且只能有一個(gè)。它 是第一個(gè)運(yùn)行的函數(shù)。
一般情況下,main()寫在文件的最后面,其他被調(diào)用的函數(shù)放在前面,這樣定義函數(shù)之前可以不加聲明,如果放在主函數(shù)之后,則必須先聲明,再定義,再被調(diào)用。
解釋如下:
1、int main()是C語言main函數(shù)的一種聲明方式;
2、int表示函數(shù)的返回值類型,表示該主函數(shù)的返回值是一個(gè)int類型的值;
3、main表示主函數(shù),是C語言約定的程序執(zhí)行入口,其標(biāo)準(zhǔn)的定義格式為int main(int argc, char *argv[]);在int main()中,()中沒有數(shù)值表示入?yún)榭眨韧趇nt main(void);
4、事例中printf("%f",a);表示將a的值作為浮點(diǎn)類型打印出來,在屏幕上顯示,而主函數(shù)的返回類型int會將返回的值回傳給主調(diào)進(jìn)程,而不是在屏幕輸出。
5、因此,printf的輸出類型跟主函數(shù)的返回類型沒有關(guān)系,互不關(guān)聯(lián)。事例中,return 0 對應(yīng)才是主函數(shù)的返回值類型。
拓展資料
在C語言當(dāng)中,一個(gè)程序,無論復(fù)雜或簡單,總體上都是一個(gè)“函數(shù)”;這個(gè)函數(shù)就稱為“main() 函數(shù)”,也就是“主函數(shù)”。比如有個(gè)“做菜”程序,那么“ 做菜 ”這個(gè)過程就是“主函數(shù)”。在主函數(shù)中,根據(jù)情況,你可能還需要調(diào)用“買菜,切菜,炒菜”等子函數(shù)。
main函數(shù)在程序中大多數(shù)是必須存在的,但是依然有例外情況,比如windows編程中可以編寫一個(gè)動態(tài)鏈接庫(dll)模塊,這是其他windows程序可以使用的代碼。由于DLL模塊不是獨(dú)立的程序,因此不需要main函數(shù)。再比如,用于專業(yè)環(huán)境的程序-----如機(jī)器人中的控制芯片--可能不需要main函數(shù)。
參考資料:百度百科:main函數(shù)
考慮到main函數(shù)的特殊性,lz不明白這個(gè)問題可以理解。
main()是省略了返回值類型,C語言會默認(rèn)認(rèn)為成main的類型為int,在main()的函數(shù)體內(nèi)要返回一個(gè)值,如return 0;
而void main()的返回值是void類型,也就是說沒有返回值。這樣在main()的函數(shù)體內(nèi)你就不用寫return 0;或者return 1;之類的返回語句。
在一個(gè)程序中,可以說你看不出兩者的差別,因?yàn)閙ain()是C語言的入口點(diǎn),入口點(diǎn)如果返回了程序也就結(jié)束了,因此C語言的這個(gè)特性似乎沒用。可沒用的話,C語言的設(shè)計(jì)者為什么要這么做呢?!肯定有用。
沒錯(cuò),前面我說的是在一個(gè)程序中,它似乎沒用。可如果一個(gè)程序prog2調(diào)用另一個(gè)程序prog1的話(這里指的是prog2直接調(diào)用prog1編譯好的可執(zhí)行文件),那么這個(gè)特性就有用了。因?yàn)閜rog2要知道prog1運(yùn)行之后的狀態(tài)。比如你用C寫了一個(gè)刪除文件的程序(暫且命名為delf),然后用另一個(gè)程序去調(diào)用delf,那么調(diào)用結(jié)果怎么樣啊?這個(gè)文件是否刪掉了?這是int main()就會派上用場了。C語言中默認(rèn)的main如果返回為0,那么這個(gè)程序調(diào)用就成功了,其他值,則為不同的錯(cuò)誤代碼。在你的delf程序中,如果那個(gè)文件刪除成功,那么就在int main()中返回0,其他調(diào)用delf的程序就知道,噢,這個(gè)操作成功了。
在unix/linux系統(tǒng)中的很多命令都是通過這種方式獲得運(yùn)行結(jié)果的。
關(guān)于譚浩強(qiáng)的書,我想不用多說,發(fā)行量說明了一切。畢竟第二版在編寫的時(shí)候還比較早,而第三版根據(jù)很多現(xiàn)在的需要進(jìn)行了改寫,內(nèi)容當(dāng)然會好些。鑒于lz是初學(xué)C,其實(shí)大可不必在這個(gè)問題上浪費(fèi)太多時(shí)間,當(dāng)你有了更多的項(xiàng)目經(jīng)驗(yàn),對這個(gè)問題會有更深刻的理解。
上面我已經(jīng)給出了main()、int main()和void main()的區(qū)別,但建議lz忽略這個(gè)差別,認(rèn)為成二者一樣,先把C的其他部分學(xué)好。至于只寫成main(),我并不推薦,就算編譯器通過了,這種編程的風(fēng)格也太不嚴(yán)謹(jǐn),不利于好的習(xí)慣的養(yǎng)成。
main不是關(guān)鍵字,你可以定義一個(gè)變量int main;而不會出錯(cuò),
main函數(shù)是控制臺程序的默認(rèn)入口函數(shù),win32app程序的入口函數(shù)是WinMain
main()稱之為主函數(shù),既可以是無參函數(shù),也可以是有參的函數(shù)。main()函數(shù)的帶參的形式:
main(argc,argv)
int argc,char *argv[];
{ ..... }
//int main(int argc, char *argv[]) { }
不帶參 main() { }
main()函數(shù)可以調(diào)用其他有參或無參函數(shù)。調(diào)用有參函數(shù)時(shí),參數(shù)在調(diào)用時(shí)傳遞。
一個(gè)完整的C語言程序,是由一個(gè)main()函數(shù)和若干個(gè)其它函數(shù)結(jié)合而成的,或僅由一個(gè)main()函數(shù)構(gòu)成。
從main()函數(shù)開始執(zhí)行當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。
習(xí)慣上,將主函數(shù)main()放在最前頭。
名稱欄目:c語言main函數(shù)詳解 c語言main函數(shù)的用法
網(wǎng)站地址:http://chinadenli.net/article30/dojodso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、微信公眾號、網(wǎng)站策劃、Google、企業(yè)建站、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)