C++ 中的左值和右值是什么?


左值(定位器值)表示内存中占据某个可识别位置(即具有地址)的对象。

右值通过排除来定义。每个表达式要么是左值,要么是右值,因此,右值是一个不表示内存中占据某个可识别位置的对象的表达式。

例如,赋值操作符期望在其左操作数中具有一个左值,因此以下语句有效 −

int i = 10;
But this is not:
int i;
10 = i;

这是因为 i 有内存地址且为左值。而 10 没有可识别的内存位置,因此是右值。因此,将 i 的值赋予 10 没有意义。


更新于:2020-2-11

3K+ 浏览

开启你的 职业生涯

完成课程认证

开始
广告