如何理解左值

犀牛书第六版P67页关于左值有这样一句描述:表达式只能出现在赋值运算符的左侧
然后举出例子在javascript中,变量、对象属性和数组元素均是左值
但是例子中的几个值均可以放在表达式右边
于是去查百度,百度中关于左值的描述定义如下:左”(left)的原意是指可以放在赋值符号“=”的左边,但其实也表示能作为&和++等操作符的操作数
在描述上的区别就是左值是可以在表达式左边还是只能在表达式左边呢?
希望其他非前端开发人员也能给出关于这个概念的见解,不胜感激

九州编程
浏览 571回答 4
4回答

慕工程0101907

int a;举几个例子吧 a = 5; //把(int)5存入a所具有的地址 int *pa = &a;//取a地址 int& foo(int &a) {...return a;} //一个返回引用的函数int *pa2 = &foo(a); //取返回对象(a)的地址 以上代码都以变量a举例。当一个对象被用作右值时,用的是其中的值(内容);当一个对象被用作左值时,用的是它的地址(身份)。(可以说左值对象都拥有其所支配的一片内存) ps.想要深入了解可以去看看C++11的右值引用和std::move()

喵喵时光机

即可以放在左面又可以放在右面 那算是语言的语法糖。因为放在左右的含义是不一样的,在左边是它的地址,在右边是它的值

繁星淼淼

如果不想像C++中那么详尽。你就简单理解为等号左边用到的是它的左值,在右边用到的就是它的右值。然后就是临时对象等不让你使用它的左值。

慕尼黑5688855

我猜是翻译错了?左值:表达式中只能出现在赋值运算符左侧的东西
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java