引用:声明变量时有&,表示引用 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就可以了。
注意:
返回变量如果是临时的,那么会 *** 作非法内存, *** 作非法内存的结果是未知的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)