C++ 中左值与右值区别

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

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

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

本质:

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

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

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

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

int a , b;

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

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

b = a ;   //   合法

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

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

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

个人原创内容, 转载请注明来源!
————————————————
本文同时发布在CSDN:
原文链接:https://blog.csdn.net/xiaoyaohuqijun/article/details/47843105

© 2019, Qijun Hu. All rights reserved. 版权所有, 转载请注明出处和链接!

Leave a Reply

Your email address will not be published. Required fields are marked *