【C++】引用与返回值-----INT 和INT &返回区别

【C++】引用与返回值-----INT 和INT &返回区别,第1张

引用:声明变量时有&,表示引用       int  &a;

返回值:

#include 
using namespace std;
int fun()
{
	int a = 1;
	return a;
}

这个就是函数带返回值的、无形参。

这里我们拿int做列子

在返回值的类型有int和int&两种。

第一种:
int fun()
{
return a;
}

函数里面生成的是一个临时参数\局部变量,使用完了后就会被销毁,这种返回不能用作左值运算    ,像这样: 

第二种:
int& fun()
{
return a;
}

   返回值类型为int&,是一个引用,相当于返回的时变量a的别名,就可以对该变量 *** 作,如赋值等等。set() = 5;是正确的。但是还存在问题在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:
int& set()
{
int a;
return a;
}
此时就会调用出错,因为a是临时变量,函数结束是就自动销毁了,不能再创建别名了。但是将int & 改成int就可以了。

 注意:

返回变量如果是临时的,那么会 *** 作非法内存, *** 作非法内存的结果是未知的。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/3002932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)

保存