C++ 中的左值和右值是什么?
左值(定位值)表示占据内存中某个可识别位置的对象(即具有地址)。
右值通过排除定义。每个表达式要么是左值,要么是右值,所以右值是不表示占据内存中某个可识别位置的对象的表达式。
例如,分配期望左值作为其左操作数,因此以下内容有效 −
int i = 10; But this is not: int i; 10 = i;
这是因为i在内存中有地址,并且是左值。而 10 没有可识别的内存位置,因此是右值。所以将i的值赋值给 10 没有意义。
广告
左值(定位值)表示占据内存中某个可识别位置的对象(即具有地址)。
右值通过排除定义。每个表达式要么是左值,要么是右值,所以右值是不表示占据内存中某个可识别位置的对象的表达式。
例如,分配期望左值作为其左操作数,因此以下内容有效 −
int i = 10; But this is not: int i; 10 = i;
这是因为i在内存中有地址,并且是左值。而 10 没有可识别的内存位置,因此是右值。所以将i的值赋值给 10 没有意义。