C++ 是否引用 return 左值或右值?

C++ does reference return a lvalue or rvalue?

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

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

error: lvalue required as left operand of assignment

但是&b确实在左手边。那么错误信息到底是什么意思呢?

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

您不能更改变量的地址。变量在其整个生命周期内具有相同的地址。