int a, b;
a=10;
&b=a;
这个简单的代码在编译时会导致以下错误。
error: lvalue required as left operand of assignment
但&b
确实在左侧。那么错误信息究竟意味着什么呢?
答案 0 :(得分:4)
在此上下文中,&
是地址 - 运算符。 &b
的值是int *
类型的指针。这是一个prvalue。这与在声明中使用&
符号无关(它表示引用的声明) - 符号在声明符中的含义与在表达式中的含义不同。
您无法更改变量的地址。变量在其整个生命周期中具有相同的地址。