C++中返回引用和返回值的区别

 我来答
百度网友69d3db5
2016-12-08 · TA获得超过141个赞
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:103万
展开全部

通常的返回机制将返回值复制到临时存储区域中, 随后调用程序将访问该区域. 

返回引用则程序则调用程序将直接访问返回值.

通常引用将指向传递给函数的引用, 因此调用函数实际上是直接访问自己的一个变量.

比如

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的同名对象毫无意义
严棠伟雨筠
2019-06-23 · TA获得超过3820个赞
知道大有可为答主
回答量:3123
采纳率:24%
帮助的人:195万
展开全部
如果返回值,那么内存中只有两个存储该整形数据的单元,一个是函数中生成的被返回的整形数据,一个是接收以后的整形数据,而返回引用则只要一格单元来存储这个整形数据,被返回的和接收到的都是同一个整形数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式