C 語言中 int main 和 void main 有何區別?

時間 2021-05-30 02:10:39

1樓:DR.JC

int main代表你main函式定義為整形,函式最後要加上返回值。

void main或者就main代表你是無型別函式,函式最後不能加上返回值。

2樓:Eason同學

害,我一開始也一直寫void 為了省事

後來發現到了一些嚴謹的編譯器會直接報錯

貌似c必須要有返回值?反正後來我也return 0了

3樓:皮卡丘黃了吧唧

返回值的問題嘛,你寫的int main就需要寫寫返回值return int型別

寫void main 就不用寫返回值,當然寫也沒問題其實在C90版本以前可以直接寫main的

不過呢,我覺得你們老師可能是想讓你們注意一下這個返回值的問題吧,雖然說寫void的時候可以不寫,但是這種書寫習慣不好,我到現在有些時候寫C的程式,就算我用的void 我也會在結尾加上return;代表函式的結束,你寫的程式其實大部分情況下都是給別人看的,簡潔的、明確的寫法會讓讀者更喜歡

4樓:對不起非凡哥

C99裡面規定乙個程式正常結束的標誌是得到返回值0。在你的程式結束後,你關心的事完成了,可是系統還要關心後面的工作,它會獲取你的這個返回值,根據情況做它後面的處理。

如果你main函式是void型,雖然與int型寫出來的程式裡你關心的事結果是完全一樣的,但是由於你沒有給系統返回值,系統是沒辦法做接下來它需要做的事的,就會導致例如記憶體持續被占用無法釋放之類的問題。

5樓:德拉科-黃

int和void都是返回型別,c語言函式宣告的時候要宣告函式完成時返回乙個資料,int表示返回的是int型別,void表示不用返回。

6樓:半城丶

我也不是很懂,今天上實驗課我問了老師他說void是乙個空函式不需要返回值,int main需要返回值。我也用的void寫的,沒有被批評是錯的

7樓:李皓奇

寫這個答案主要是為了自己複習一遍加深記憶。

C的標準:main函式預設返回型別為int,預設return 0語句。

所以C的main最簡單寫法是main(void)。

C++的標準:函式引數列表為空則預設為void,預設return 0語句。

所以C++的main最簡單寫法是int main()。

至於C裡面「著名」的void main(),是乙個不符合標準但又可以在一堆環境下通過的寫法,不被推薦。

8樓:黑眼圈

在linux中,每個指令執行完都會有乙個返回值儲存在?變數中,可以在指令碼中判斷上一條指令執行是否成功,而這個返回值就是通過main函式的return 0返回的。當然,void main 也不會報錯。

9樓:Charlie

主函式返回值為整型是規定(C99)。為什麼返回的數為什麼非要是0呢,我記得返回0表示這個程式執行正確,返回值!0說明出問題了。

有的書上(國內C語言紅寶書),主函式返回型別用空,按規定是錯的,有些編譯器根本就不認(比如GCC)

OK~that~

感覺被打臉了~

後來手動加上c99的支援~

~上次給學弟們演(zhuang)示(bi)還不是這個樣子的~~~@Salted Filsh 大牛快救我~~~不過在開發微控制器的時候,好多IDE用的並不是標準的C語言編譯器,所以開發微控制器用void沒問題~~

10樓:王華

c語言發明者寫的c語言教程反覆強調void main是錯的。

但編譯器其實是可以通過的。

比如int n=5;

int a[n];語法是錯誤的

但你的編譯器是C99標準就可以通過

11樓:此處空白

void main表示函式沒有返回值,而main則有返回值。只不過給省略了而已!函式沒有宣告型別時預設是為整型的,main等同於int main 。

自定義函式時如果主函式用的是void main,就不能使用return把值返回給主函式,會報錯

12樓:SuperSodaSea

看起來你遇到了乙個好老師……

為什麼主函式用int main()比用void main()好?

C11 5.1.2.2.1 程式啟動return 0 倒不是必須的:

C11 5.1.2.2.3 程式終止不過你加上也沒問題。

c語言中int main 主函式的結尾為何有時有return 0有時沒有?

楓子 return 0首先是告知程式結束,很重要的一點是輸出到標準錯誤流,表示程式執行正確。除錯程式的時候可以編寫 return 1或者其他不是0的數字。表示程式執行出錯。 文林 以上所有答案都不完整,甚至還有錯誤的答案,其實這種問題,試試不就知道了嗎。寫乙個test.c include int t...

C語言中,double 和double 5 有什麼區別?怎麼理解?

暮無井見鈴 double 5 是指向 double 5 型別的指標型別。double 是指向 double 型別的指標型別。區別不是很顯然的嗎?double 5 型別能隱式轉換成 double 型別,但它們不是同一型別。可以考慮一下 short 和 long 這兩種型別是能相互隱式轉換的,但它們顯然...

請問 C 語言中 和 的用法?

記住 有3個用途 1.乘號 Multiply 2 3 就是6 2.宣告指標 Pointer Statement int a 5 int ptr a 就是宣告變數a是5,把a的位址附到指標ptr上 3.解引用 Dereference ptr 單獨拿出來就是找出 ptr指標指向的值,按照第二點的說法就是...