C++ 中左值与右值区别

更多关于编程语言, 数据库,算法等精品内容, 请访问  我的个人博客  huqijun.org

-------------------------------------------------------------------------------------------------------------

 

《C++ primer 》第2章介绍变量时,介绍了表达式的两种类型:

 

左值(L-value):左值可以出现在赋值语句的左边或右边;

右值(R-value): 右值只能出现在赋值语句的右边;

 

本质:

左值(L-value) 的L 应该被理解为Location ,表示可寻址的,有确定地址的;

右值(R-value) 的R 应该被理解为Read ;

 

简单来说, 有确定地址,可取地址的是左值;否则就是右值;

 

举例来说,变量是确定地址的,可取地址的,是左值;  字面值常量是不可取地址,是右值的。

int a , b;

a = 3;      // 合法, 右值只在赋值语句的右边出现;

3 = a;      //非法,  右值在赋值语句左边出现;

b = a ;   //   合法

 

总结:  可取地址是左值, 否则是右值; 

              左值本质代表着一块可以被更新的内存区域, 所以左值可以在赋值的左右边, 右值不能出现在左边; 

 

更多关于编程语言, 数据库,算法等精品内容, 请访问  我的个人博客  huqijun.org

个人原创内容, 转载请注明来源!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值