c 引用返回值

2021-09-07 13:19:00 字數 643 閱讀 1280

引用作為函式的返回值時,函式的返回值能夠理解為函式返回了乙個變數(事實上,函式返回引用時,它返回的是乙個指向返回值的隱式指標),因此,值為引用的函式能夠用作賦值運算子的左運算元。另外,用引用返回乙個函式值的最大優點是。在記憶體中不產生被返回值的副本。

#include 

using

namespace

std;

double

array[5] = ;

double &change(int i)

int main()

在主函式中,當語句「change(2) = 3.14;」被執行時。change函式返回的事實上是對陣列元素array[2]的引用。通過這個引用,array[2]被賦值3.14。隨後的語句「change(3) = 2.7;」

不能返回區域性變數或暫時變數的引用,但能夠返回全域性變數的引用。也就是說要注意被引用的物件不能超出作用域。主要原因是區域性變數會在函式返回後被銷毀,因此被返回的引用就成為了「無所指」的引用。以下**是錯誤的:

int &func()

函式返回的是引用,那就不像一般情況一下建立副本,節約資源,但假設返回引用。事實上它是隱式指標。是不能返回區域性變數的指標的,那是野指標。

c 引用返回值

函式返回值時,要生成乙個值的副本。而用引用返回值時,不生成值的副本。例如,下面的程式是有關引用返回的4種形式 ch9 6.cpp include float temp float fn1 float r float fn2 float r void main void main 見圖9 9說明。圖9...

c 引用返回值

引用作為函式的返回值時,函式的返回值能夠理解為函式返回了乙個變數 事實上,函式返回引用時,它返回的是乙個指向返回值的隱式指標 因此,值為引用的函式能夠用作賦值運算子的左運算元。另外,用引用返回乙個函式值的最大優點是。在記憶體中不產生被返回值的副本。include using namespace st...

c 返回值為引用

與返回原值的區別 return的位址和返回值的位址是同乙個,也就是佔據著同一塊記憶體,因此要求此時return的東西必須是乙個實體 有儲存位址 不能是乙個作用域僅在函式中的區域性變數 例如 int fun a fun 就會報錯。因為a找不到它應該存在的位址在 int fun int c a fun ...