更多关于编程语言, 数据库,算法等精品内容, 请访问 我的个人博客 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
个人原创内容, 转载请注明来源!