c++中函数的返回值是存储在临时变量中的
下面是个实验
如图,func2函数建立的引用不是func1形参x的引用,而是临时变量的引用
(这个引用比指针好用,因为你无法取得临时变量的地址,所以无法建立指向临时变量的指针)
所以说函数的返回值是存储在临时变量中的
const与函数返回值的类型有什么关系呢?
c++默认函数的返回值是const型
看下面:
const int x = 10;
int &y1= x;//错误
const int &y2 = x;.//正确,
由这个可知,const变量只能建立const引用,而无法建立普通引用
所以说,如果函数的返回值的临时变量如果是const类型的,那就无法建立该变量的普通引用
{
return x;
}
int func2(const int &xx)
{
}
int func3(int &x)
{
}
int main()
{
int x = 10;
func2( func1(x));
func3(func1(x));//错误
}
所以说函数的返回值的临时变量是const型的