C語言關於return的疑問

2022-03-08 21:35:12 字數 1395 閱讀 3638

1樓:匿名使用者

其實你提出的問題,跟編譯器是有關的,有的編譯器是不檢測這些問題,有的當成警告,有的當成錯誤。我跟你說一下gnu的標準吧。

1.首先你要知道的一件事就是,c語言寫出來的程式,一般被認作是要在命令列中執行的,也就是說,你寫的程式可能成為一條類似於指令似的東西,所以,你的程式可能成為別的程式的參與或者入口值,那麼,這就要求,你的程式必須返回乙個東西,以表徵你的程式執行有結果。想windows平台下的東西,基本都是視窗的麼,滑鼠點個叉,程式就沒了,它可能不在意返回什麼,但是你在命令列下,它有這方面的需求,要求你的程式必須返回乙個值,所以c標準拓展規定主函式,必須有返回值。

你這裡說無報錯,只是你用的可能是win平台下的編譯器,它不檢查這個而已。

2.副函式 int f() 最後沒寫返回什麼,就報錯。這個問題實在顯而易見,你都說是int f(),前面的int是啥意思,也就是,你答應人家返回乙個int,你卻不給,這不是你說話不算話麼,編譯器當然不讓你過了。

你寫void,可以不寫return,但是你寫int一定要返回乙個int。(其實有很多編譯器也不會檢查這個,一般只是報個警告而已)

3.第三個問題,參考我上面兩個解答,應該能明白點了吧。

4.不論在什麼函式中,return 0 ;的意義就是返回乙個0值。但是這個0值可能代表很多意義。

對於通常的程式來說,主函式返回0,證明這個程式被正確執行,並結束。普通函式裡的返回值,完全取決於你自己定義的意義。就是個0值而已。

2樓:匿名使用者

你說的副函式,麻煩你說成子函式吧。

乙個函式就算有返回值型別,不寫return 什麼子函式是不會出錯的。當日,如果沒有返回值的,你強制給它乙個return 0那就會出錯。

乙個子函式的return 0是指乙個函式執行後,這個函式所要返回的值。其實return 在**使用結果都是一樣的,也就是結束這個函式。

3樓:匿名使用者

1,2,3個問題:這是編譯器問題,有些編譯器在main裡可以不用返回。建議按標準來。int型別的,應該返回乙個整形數。

4:意義有點不同,主函式裡的return 0主要是結束主函式(這裡這個0可以隨便改成1,2,3.。。。,主要是用來結束主函式,習慣寫為0),整個程式段。

而子函式裡的return 0也有類似的功能,但因為子函式可能用來傳參 如 int f() ,後面有m=f();這就意義不一樣了。

4樓:

如果main函式顯式返回(指return語句),編譯器會自動給你新增乙個,但其他函式不會,如果返回值不是void,必須顯式返回.

你的c++教材上應該有跟上面差不多的描述,自己認真點看看吧.

5樓:匿名使用者

return 0; 這是乙個返回值,必須要寫的 。那可能是你的編譯器有問題了。

關於C語言的問題,return語句

read guesses函式裡面的return並沒有終結程式 之所以猜對以後會自動退出,是因為你讀取command的地方沒寫好 c是不會跳過space的,所以讀取command的時候讀取了最後乙個數字後面的換行符 所以導致了程式以為你輸入了乙個非y的command 修改一下讀取方式就好了 inclu...

關於C語言的,關於C語言

看了下你的程式,並親自執行了一下,是沒有錯誤的,正常輸出的結果如下圖 所以對於你的 而言,可以得出一下分析結果 1 在語法 和 邏輯上都是正常的,可以正常執行並列印出結果。2 我猜測,你的這道題應該是針對 static 的練習。static定義的變數,在程式啟動時被建立,直到程式終止才被殺死,在整個...

C或C 語言結束時會有“return 0”這個結尾,為什麼一定要return0呢?return1或2不行嗎

如果是程式的返回值,沒有renturn 0 語句也不會提示編譯錯誤,不過按規範還是加上好。但如果是編寫函式的話,要求有返回值則要加上return 變數名 這是main 函式執行完時告知系統是否執行成功。一般用return 0表示 執行成功。可以的,因為主函式main也是一個函式。若main定義為in...