代碼環境
操作系統:Ubuntu 20.04
gcc版本:gcc version 9.3.0
main 函數簡介
main 函數是我們 C 語言程序的唯一入口,也就是說,如果我們的 C 語言程序中沒有 main 函數,那么我們的程序就無法運行。
即程序是從main函數開始,對其他函數的調用也是直接或間接地在main函數中操作的。
同時,main 函數是我們系統自己負責調用的,不需要我們手動調用 main 函數。
語法
// 帶參數
int main(void)
{
return 0;
}
// 不帶參數
int main(int argc,char *argv[]) //等價于 int main(int argc,char **argv)
{
return 0;
}
上面我們定義的是main函數的標準寫法,一個帶參數,一個不帶參數。
這里因為文章是給初學者看的,所以就不放那些不標準的了,以免有的童鞋記錯了就尷尬了。
其實之所以說這個是標準寫法,是因為C89/C99/C11標準文檔中只提供了兩種main函數的寫法:
int main(void) { /* ... */ }
int main(int argc, char *argv[]) { /* ... */ }
參數
基礎語法我們知道了,那么main函數中的參數又是什么鬼?
void?
int argc, char *argv[] ??


1、void
這個參數的作用是限定main方法不帶任何參數。
注:其實還可以不帶任何參數,就是為空,比如:


運行結果


再來看一看帶void的效果:




吶,其實是一樣的。
網上可能有的會說帶void的重新聲明會報error,還有的說帶void運行out帶參數會報錯,但是好奇心這里都試過了,最起碼目前gcc 9.3.0 并不會報錯


好啦,這里只是延伸說明下,實際運行中,也不會手動去調用這個方法,所以如果你不想傳參數,寫不寫void都行。不明白的可以忽略,記住寫法就成。
2、int argc, char *argv[]
argc參數表示了命令行中參數的個數(注意:文件名本身也算一個參數),
argc的值是在輸入命令行時由系統按實際參數的個數自動賦予的。
下面我們來看看具體代碼使用例子和效果:




總結
到這里就介紹得差不多了。
重點是記住兩點:
1、main函數是系統調用的唯一入口函數
2、main函數可以帶兩個參數,以及兩個參數分別代表什么(參考上面int argc, char *argv[])
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。