[英]Is it valid to return a reference as a reference valid in C++
#include <iostream>
using namespace std;
int& fun1(int& ref)
{
ref = 30;
return ref;
}
int main()
{
int i = 10;
i = fun1(i);
cout << "Value of i:" << i << endl;
return 0;
}
輸出:i:30的值
返回作為引用傳遞的函數參數作為返回相同引用的函數是否有效? 根據我的理解,fun1(int&ref)中的ref在堆棧中將具有其自己的內存位置,並且返回ref的地址無效。
引用以各種方式起作用,就好像它們是原始對象一樣。 這就是說,引用的地址給出原始對象的地址,引用的引用給出原始對象的引用。
盡管存在指向指針的指針,但沒有這樣的東西作為對引用的引用。
注意i = fun1(i);
的賦值i = fun1(i);
是多余的。 在這種情況下, i
已經30
了。 您可以簡單地調用fun1(i);
。
是的,很好。 重要的是,引用對象的生命周期足夠長。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.