日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

函數(shù)的返回值,C語言函數(shù)返回值詳解

 討厭的搗蛋鬼 2022-06-17 發(fā)布于浙江
通常我們希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個確定的值,這就是函數(shù)的返回值。函數(shù)的返回值是通過函數(shù)中的 return 語句獲得的。return 語句將被調(diào)函數(shù)中的一個確定的值帶回到主調(diào)函數(shù)中,供主調(diào)函數(shù)使用。

函數(shù)的返回值類型是在定義函數(shù)時指定的。return 語句中表達(dá)式的類型應(yīng)與定義函數(shù)時指定的返回值類型一致。如果不一致,則以函數(shù)定義時的返回值類型為準(zhǔn),對 return 語句中表達(dá)式的類型自動進行轉(zhuǎn)換,然后再將它返回給主調(diào)函數(shù)使用。但是建議初學(xué)者在編程的時候,務(wù)必要保持它們兩個類型一致。

在調(diào)用函數(shù)時,如果需要從被調(diào)函數(shù)返回一個值供主調(diào)函數(shù)使用,那么返回值類型必須定義成非 void 型。此時被調(diào)函數(shù)中必須包含 return 語句,而且 return 后面必須要有返回值,否則就是語法錯誤。

如果函數(shù)有返回值,那么 return 語句后面的括號可以不要,比如“return(z);”等價于“return z;”。若不需要返回值則可以不要 return 語句。

需要強調(diào)的是,一個函數(shù)中可以有多個 return 語句,但并不是所有的 return 語句都起作用。執(zhí)行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句后的其他語句就都不會執(zhí)行了。

return是如何將值返回給主調(diào)函數(shù)的

我們知道,被調(diào)函數(shù)運行結(jié)束后才會返回主調(diào)函數(shù),但是被調(diào)函數(shù)運行結(jié)束后系統(tǒng)為被調(diào)函數(shù)中的局部變量分配的內(nèi)存空間就會被釋放。也就是說,return 返回的那個值在被調(diào)函數(shù)運行一結(jié)束就被釋放掉了,那么它是怎么返回給主調(diào)函數(shù)的呢?

事實上在執(zhí)行 return 語句時系統(tǒng)是在內(nèi)部自動創(chuàng)建了一個臨時變量,然后將 return 要返回的那個值賦給這個臨時變量。所以當(dāng)被調(diào)函數(shù)運行結(jié)束后 return 后面的返回值真的就被釋放掉了,最后是通過這個臨時變量將值返回給主調(diào)函數(shù)的。而且定義函數(shù)時指定的返回值類型實際上指定的就是這個臨時變量的類型。這些都是系統(tǒng)自動完成的,了解即可。

這也是為什么當(dāng) return 語句中表達(dá)式的類型和函數(shù)返回值類型不一致時,將 return 的類型轉(zhuǎn)換成函數(shù)返回值類型的原因。return 語句實際上就是將其后的值賦給臨時變量,所以它要以臨時變量的類型為準(zhǔn),即函數(shù)返回值的類型。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多