C/C++編程筆記:“ int main()”和“ int main(void)”的區(qū)別?

考慮 main()的以下兩個定義:
int? main()
{
???/*? */
???return? 0;
}
和
int? main(void)
{
???/*? */
???return? 0;
}
有什么不同?
在C ++中,沒有區(qū)別,兩者相同。
兩種定義都可以在C中使用,但是從技術上講,使用void的第二種定義在技術上被認為是更好的,因為它明確指出main只能在沒有任何參數(shù)的情況下調(diào)用。
在C語言中,如果函數(shù)簽名未指定任何參數(shù),則意味著可以使用任何數(shù)量的參數(shù)或不使用任何參數(shù)來調(diào)用該函數(shù)。例如,嘗試編譯并運行以下兩個C程序(請記住將文件另存為.c)。注意fun()的兩個簽名之間的區(qū)別。

以上程序編譯和運行正常,但下面的程序在編譯失敗

與C不同,在C ++中,上述兩個程序均無法編譯。在C ++中,fun()和fun(void)都是相同的。
因此區(qū)別在于,在C語言中,可以使用任意數(shù)量的參數(shù)來調(diào)用int main(),但是只能在不使用任何參數(shù)的情況下調(diào)用int main(void)。盡管大多數(shù)情況下并沒有什么區(qū)別,但是在C語言中建議使用“ int main(void)”。
練習:(預測以下C程序的輸出)
問題①

問題②

小伙伴們看懂了嘛?希望對你們有幫助哦!
另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!

UP在主頁上傳了一些學習C/C++編程的視頻教程,有興趣或者正在學習的小伙伴一定要去看一看哦!會對你有幫助的~
分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)
歡迎轉(zhuǎn)行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍分享:

編程學習視頻分享:
