目前我正在學習c和我有一個關於回報的困惑:返回1非主要功能
int factorial (int n)
{
if (n == 1)
return 1;
else
return n * factorial (n -1);
}
在上面的遞歸代碼的最後一次通話時,n爲1,將返回1將返回整數值1或執行錯誤,就像在main中一樣。我有這種困惑,因爲返回1在main和main函數中被區別對待...
目前我正在學習c和我有一個關於回報的困惑:返回1非主要功能
int factorial (int n)
{
if (n == 1)
return 1;
else
return n * factorial (n -1);
}
在上面的遞歸代碼的最後一次通話時,n爲1,將返回1將返回整數值1或執行錯誤,就像在main中一樣。我有這種困惑,因爲返回1在main和main函數中被區別對待...
return 1
是否會返回整數值1或執行錯誤,如main?
return 1
返回整數值1
從任何函數聲明爲返回int
,即使該功能恰好是int main()
。
來自main()
的非零返回值是,解釋爲(由執行環境,例如shell)指示執行錯誤。那恰好是語義的返回值main()
。
return語句將返回return語句的參數中的值,並且它必須是功能。價值的含義取決於解釋。主函數的返回值可以解釋爲成功或錯誤代碼。有時也在其他功能中。
return 1
表示返回1 - 無論是在main
函數還是在其他函數中。
函數返回值的解釋由調用函數進行。
在main
的情況下,由於在代碼中沒有函數應當調用它,作爲1誤差執行中解釋由誰執行該程序由(或更精確地,可製成)。
你可以從任何返回'int',甚至'main'的函數返回'1'。 (來自'main'的返回值可能被*操作系統*以某種方式解釋,但任何合法的'int'都可以從*程序*的角度返回)。 – BoBTFish
1.如果這個問題是關於C,請刪除C++標記。2.是什麼讓你認爲返回'1'是一個錯誤? – UnholySheep
如果任何執行某種計算的函數在被認爲是錯誤的情況下能夠返回1(或任何非零值)? 「main」的返回值爲零爲好,而一個錯誤的小正數只是一個* convention *真的。 –