#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&amp; ref)中的ref将在堆栈中拥有它自己的内存位置,并返回ref的地址无效。
答案 0 :(得分:2)
引用以各种方式行事,就好像它们是原始对象一样。这意味着获取引用的地址会给出原始对象的地址,并且引用引用会提供对原始对象的引用。
虽然存在指针指针,但没有对引用的引用。
请注意i = fun1(i);
中的作业是多余的。在这种情况下,i
已经30
。您只需致电fun1(i);
。
答案 1 :(得分:0)
是的,没关系。重要的是指示物的寿命足够长。