在C ++中将引用作为引用返回是否有效

时间:2017-06-01 13:42:26

标签: 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&amp; ref)中的ref将在堆栈中拥有它自己的内存位置,并返回ref的地址无效。

2 个答案:

答案 0 :(得分:2)

引用以各种方式行事,就好像它们是原始对象一样。这意味着获取引用的地址会给出原始对象的地址,并且引用引用会提供对原始对象的引用。

虽然存在指针指针,但没有对引用的引用。

请注意i = fun1(i);中的作业是多余的。在这种情况下,i已经30。您只需致电fun1(i);

答案 1 :(得分:0)

是的,没关系。重要的是指示物的寿命足够长。