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 *
类型的指针。它是一个纯右值。这与在声明中使用 &
符号无关(它表示引用的声明)——符号在声明符中的含义与它们在表达式中的含义不同。
您不能更改变量的地址。变量在其整个生命周期内具有相同的地址。
int a, b;
a=10;
&b=a;
这段简单的代码在编译时会导致以下错误。
error: lvalue required as left operand of assignment
但是&b
确实在左手边。那么错误信息到底是什么意思呢?
在此上下文中,&
是 address-of 运算符。 &b
的值是一个 int *
类型的指针。它是一个纯右值。这与在声明中使用 &
符号无关(它表示引用的声明)——符号在声明符中的含义与它们在表达式中的含义不同。
您不能更改变量的地址。变量在其整个生命周期内具有相同的地址。