概念
最早起源于CPL
语言(1960s)。
是表达式的二个属性(类型,值类别)之一!
左值:可以寻址(Locate)的对象,根据是否可修改属性,分为可修改左值,不可修改左值
右值:不是左值的对象(C/C++中,临时对象属于右值)
要点
字符串常量是左值(不可修改的)!因为该数据存放在文本段,是有地址的!
在C中,prefix increment(++)/decrement(–), assignment(=), compound assignment(+=…), comma(,), ternary conditional(? :)是右值!而在C++中却是左值!!!
参考
- http://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c
- http://en.cppreference.com/w/c/language/value_category
- http://en.cppreference.com/w/cpp/language/value_category
- http://en.cppreference.com/w/cpp/language/operator_other#Built-in_comma_operator