函式(三) 返回型別和 return 語句

2021-10-07 08:48:07 字數 1149 閱讀 8954

《基於 c++ primer p199>

1.無返回值的函式

只有返回型別是 void 的函式。

可以不使用 return 語句,會隱式地執行。若想在中間位置提前退出,可以使用 return 語句。可以使用 return 語句返回另乙個返回 void 型別的函式。

2.有返回值的函式

在含有 return 語句的迴圈後面應該也有一條 return 語句。

(1)值是如何被返回的:

返回乙個值的方式和初始化乙個變數或形參的方式完全一樣:返回值用於初始化呼叫點的乙個臨時量,該臨時量就是函式呼叫的結果。

(2)不要返回區域性物件的引用或指標:

函式完成後,它所佔的儲存空間也隨之被釋放掉,因此函式終止意味這區域性變數的引用將指向不再有效的記憶體區域。

想要確保返回值安全,我們不妨提問:引用所引的是在函式之前存在的哪乙個物件。

(3)呼叫運算子的優先順序與點運算子和箭頭運算子相同,如果函式返回指標、引用或類的物件,可以使用函式呼叫的結果訪問結果物件的成員。

(4)呼叫乙個返回引用的函式得到左值,其他返回型別得到右值。

(5)函式可以返回花括號包圍的值的列表,用來對表示函式返回的臨時量進行初始化。

(6)主函式 main 的返回值:

允許沒有 return 語句直接結束,編譯器將隱式地插入一條返回 0 的 return 語句。

main 函式的返回值可以看作是狀態指示器,返回 0 表示執行成功,返回其他值表示執行失敗,其中非零值的具體含義依機器而定。可以使用 cstdlib 標頭檔案中定義的兩個預處理變數,exit_failure 和 exit_success 分別表示成功和失敗。

(7)函式可以呼叫自身,成為遞迴函式。在遞迴函式中,一定有某條路徑是不包含遞迴呼叫的,否則函式將不斷地呼叫它自身知道程式棧空間耗盡為止。

3.返回陣列指標:

因為陣列不能被拷貝,所以函式不能返回陣列,但可以返回陣列的指標或引用。

int(*

func

(int i)[10

];// 宣告乙個返回指向大小為 10 的整型陣列指標的函式

簡化的方式有三種:

(1)使用型別別名;

(2)使用尾置返回型別;

(3)使用 decltype,注意 decltype 不負責將陣列型別轉換成指標型別。

返回型別和 return 語句

return 語句終止當前正在執行的函式並將控制權返回到呼叫該函式的地方。return 語句有兩種形式 return return expression 不要返回區域性物件的引用或指標 函式完成後,它所占用的儲存空間也隨之被釋放掉。因此函式終止意味著區域性變數的引用和指標將指向不再有效的記憶體區域 ...

函式返回值return

函式後面如果沒有return系統會預設return none def ff print 列印return return 15 函式在執行中遇到return就會停止執行,並返回結果,所以後面的不會被執行 print 不會被執行 a ff print a return的值會返回給函式ff def jia...

函式返回值 return

return 返回值 後面跟的是資料型別 數字 字串 布林 函式 物件 元素 null 未定義 return 返回值 1 函式名 括號 fn1 return 後面的值 2 如果沒有寫return,所有函式預設返回值 未定義 3 return後面任何 都不執行了.因此,可以控制函式體中的 執行到指定就...