c 返回值為引用

2021-08-20 19:37:59 字數 480 閱讀 1432

與返回原值的區別

return的位址和返回值的位址是同乙個,也就是佔據著同一塊記憶體,因此要求此時return的東西必須是乙個實體(有儲存位址),不能是乙個作用域僅在函式中的區域性變數

例如  int&  fun()

a=fun();

就會報錯。因為a找不到它應該存在的位址在**

int&  fun(int c)

a=fun();   這樣是正確的,a有了乙個實實在在的位址,即c所在的位置,a,c指向同一處

再開闢一塊記憶體用於儲存臨時變數,最終a取到的是臨時變數的位址(可能會造成位址浪費)

例如int fun()

a=fun();  此時會開闢一塊臨時變數內存放c,a最後的位址和臨時變數的相同,能取到c的值。

int  fun(int c)

a=fun();

a和c不在一起,因為又

開闢一塊臨時變數內存放c,a最後的位址和臨時變數的相同,而不是與原c相同。

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 引用返回值

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