解釋如下:
堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網站建設服務10余年為成都成都三維植被網小微創(chuàng)業(yè)公司專業(yè)提供成都定制網站營銷網站建設商城網站建設手機網站建設小程序網站建設網站改版,從內容策劃、視覺設計、底層架構、網頁布局、功能開發(fā)迭代于一體的高端網站建設服務。
1、int main()是C語言main函數的一種聲明方式;
2、int表示函數的返回值類型,表示該主函數的返回值是一個int類型的值;
3、main表示主函數,是C語言約定的程序執(zhí)行入口,其標準的定義格式為int main(int argc, char *argv[]);在int main()中,()中沒有數值表示入參為空,等同于int main(void);
4、事例中printf("%f",a);表示將a的值作為浮點類型打印出來,在屏幕上顯示,而主函數的返回類型int會將返回的值回傳給主調進程,而不是在屏幕輸出。
5、因此,printf的輸出類型跟主函數的返回類型沒有關系,互不關聯(lián)。事例中,return 0 對應才是主函數的返回值類型。
拓展資料
在C語言當中,一個程序,無論復雜或簡單,總體上都是一個“函數”;這個函數就稱為“main() 函數”,也就是“主函數”。比如有個“做菜”程序,那么“ 做菜 ”這個過程就是“主函數”。在主函數中,根據情況,你可能還需要調用“買菜,切菜,炒菜”等子函數。
main函數在程序中大多數是必須存在的,但是依然有例外情況,比如windows編程中可以編寫一個動態(tài)鏈接庫(dll)模塊,這是其他windows程序可以使用的代碼。由于DLL模塊不是獨立的程序,因此不需要main函數。再比如,用于專業(yè)環(huán)境的程序-----如機器人中的控制芯片--可能不需要main函數。
參考資料:百度百科:main函數
考慮到main函數的特殊性,lz不明白這個問題可以理解。
main()是省略了返回值類型,C語言會默認認為成main的類型為int,在main()的函數體內要返回一個值,如return 0;
而void main()的返回值是void類型,也就是說沒有返回值。這樣在main()的函數體內你就不用寫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ā)行量說明了一切。畢竟第二版在編寫的時候還比較早,而第三版根據很多現在的需要進行了改寫,內容當然會好些。鑒于lz是初學C,其實大可不必在這個問題上浪費太多時間,當你有了更多的項目經驗,對這個問題會有更深刻的理解。
上面我已經給出了main()、int main()和void main()的區(qū)別,但建議lz忽略這個差別,認為成二者一樣,先把C的其他部分學好。至于只寫成main(),我并不推薦,就算編譯器通過了,這種編程的風格也太不嚴謹,不利于好的習慣的養(yǎng)成。
一、定義
main函數,又稱主函數,是程序執(zhí)行的起點,main是相對來說的,如同音學理論之主調于泛音,泛音即程序中的除main之外的其他函數,迎合人們的思考方式而生成的而非必定的模式.有主有次,執(zhí)行起來條清縷析,既可將程序模塊化又實現了一個閉合的整體。
二、main()函數的形式
在最新的 C99 標準中,只有以下兩種定義方式是正確的:
int main(?void?)? /*?無參數形式?*/
{
...
return 0;
}
int main(?int argc, char *argv[]?) /*?帶參數形式?*/
{
...
return 0;
}
int指明了main()函數的返回類型?,函數名后面的圓括號一般包含傳遞給函數的信息。void表示沒有給函數傳遞參數。
三、main()函數的返回值
從前面我們知道m(xù)ain()函數的返回值類型是int型的,而程序最后的 return 0; 正與之遙相呼應,0就是main()函數的返回值。那么這個0返回到那里呢?返回給操作系統(tǒng),表示程序正常退出。
因為return語句通常寫在程序的最后,不管返回什么值,只要到達這一步,說明程序已經運行完畢。而return的作用不僅在于返回一個值,還在于結束函數。
四、main()函數的參數
C編譯器允許main()函數沒有參數,或者有兩個參數?(有些實現允許更多的參數,但這只是對標準的擴展)。這兩個參數,一個是int類型,一個是字符串類型。
第一個參數是命令行中的字符串數。按照慣例(但不是必須的),這個int參數被稱為argc(argument count)。第二個參數是一個指向字符串的指針數組。命令行中的每個字符串被存儲到內存中,并且分配一個指針指向它。
按照慣例,這個指針數組被稱為argv(argument value)。系統(tǒng)使用空格把各個字符串格開。一般情況下,把程序本身的名字賦值給argv[0],接著,把最后的第一個字符串賦給argv[1]?,等等。
擴展資料
C++中的main函數的應用:
C++繼承了C語言的大部分特性,因此保留了“程序總是從main函數開始執(zhí)行,且總是默認從main函數的return語句或結尾處結束運行”這一傳統(tǒng),但是要注意,C++中的main函數要想作為程序執(zhí)行的出入口,必須寫在全局(Global)范圍,不能寫成某個結構體或某個類的成員。
雖然main函數可以作為結構體或者類的成員函數,但相應地會失去作為程序出入口的功能。C++中全局main函數的書寫格式與C語言完全相同,功能也完全相同,且同一C++程序同樣只能有一個全局main函數。
參考資料:百度百科——main函數
我們用命令行時可以有很多選項參數,但main只有兩個參數,所以第二個參數是數組,命令行的多個參數就可存在數組中了。