C++中返回引用和返回值的区别
2个回答
展开全部
通常的返回机制将返回值复制到临时存储区域中, 随后调用程序将访问该区域.
返回引用则程序则调用程序将直接访问返回值.
通常引用将指向传递给函数的引用, 因此调用函数实际上是直接访问自己的一个变量.
比如
const int& fun (int& a, const int& b)
{
a = a + b;
return a;
}
int x = 1, y = 2, z;
z = fun(x, y);
//等价于 fun(x, y); z = x;
而且返回引用不能返回函数内部的临时变量, 因为该变量随着函数的结束而销毁, 返回值会毫无意义, 如
const int& fun (int& a, const int& b)
{
int c = a + b;
return c;
}//该程序会崩溃, 因为变量c随着程序的结束而销毁, 继而返回的c的同名对象毫无意义
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询