C++返回引用类型时,是否可以返回一个算术表达式?为什么?

2024-12-13 02:15:19
推荐回答(5个)
回答1:

语法上可以,但不要这么做。
举例:
int &f()
{
return 1+2;
}
这个实际相当于
int &f()
{
int temp = 1 + 2; //一个局部变量
return temp;
}
然而当这个函数返回后,就是函数结束了,它的所有局部变量都消失了,即temp消失了;这时你持有的返回值引用的对象,已经没有意义了;
假如这么写 f()++;就会怎么样呢。

回答2:

可以
引用的是局部地址,但存在一定的风险性
例如:
#include
#include

const int &abc(int a)
{
a++;
return a+2;
}

void main()
{
int a=1;
a=abc(a);
cout<}
结果a为4

回答3:

显然不可以。返回的结果不可用。

回答4:

可以返回一个自定义类型...
差不多就可以实现返回算术表达式的功能,
至于是否可以返回算术表达式...
我不太清楚啦...

回答5:

可以