C ++确实引用返回左值或右值?

时间:2016-10-24 23:04:43

标签: c++ reference lvalue

int a, b;
a=10;
&b=a;

这个简单的代码在编译时会导致以下错误。

error: lvalue required as left operand of assignment

&b确实在左侧。那么错误信息究竟意味着什么呢?

1 个答案:

答案 0 :(得分:4)

在此上下文中,&地址 - 运算符。 &b的值是int *类型的指针。这是一个prvalue。这与在声明中使用&符号无关(它表示引用的声明) - 符号在声明符中的含义与在表达式中的含义不同。

您无法更改变量的地址。变量在其整个生命周期中具有相同的地址。