【发布时间】:2014-08-06 09:58:11
【问题描述】:
#include<iostream.h>
int main()
{
int m = 2;
int &x = m++;
cout<<m;
return 0;
}
这段代码应该给出 输出: 3
但是这段代码给出了错误: 从“int”类型的临时变量初始化“int&”类型的非常量引用无效。
【问题讨论】:
-
int &x = m++;有什么用? -
m++的结果是临时对象,其生命周期仅限于此行。它不能分配给参考 - 编译器消息非常清楚。 m++ 在临时对象中保留一个旧的 m 值,增加 m 的值,并返回具有先前 m 值的临时对象。 -
@FedericoReghenzani 它应该像“int &x= m; m++;”一样工作