为了账号安全,请及时绑定邮箱和手机立即绑定

如何理解左值

如何理解左值

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

4 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

int a;
举几个例子吧

  1. a = 5; //把(int)5存入a所具有的地址

  2. int *pa = &a;//取a地址

  3. int& foo(int &a) {...return a;} //一个返回引用的函数
    int *pa2 = &foo(a); //取返回对象(a)的地址

以上代码都以变量a举例。
当一个对象被用作右值时,用的是其中的值(内容);
当一个对象被用作左值时,用的是它的地址(身份)。
(可以说左值对象都拥有其所支配的一片内存)

ps.想要深入了解可以去看看C++11的右值引用和std::move()


查看完整回答
反对 回复 2019-03-13
?
MMTTMM

TA贡献1869条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-03-13
?
忽然笑

TA贡献1806条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-03-13
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

我猜是翻译错了?
左值:表达式中只能出现在赋值运算符左侧的东西

查看完整回答
反对 回复 2019-03-13
  • 4 回答
  • 0 关注
  • 491 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号