C++的左值和右值问题
以下文字是摘自《C++ Primer 3rd Edition》-- page76
“变量和文字常量都有存储区,并且有相关的类型。区别在于变量是可寻址的
(addressable) 对于每一个变量都有两个值与其相关联:
1.它的数据值,存储在某个内存地址中。有时这个值也被称为对象的右值(rvalue ,读
做are-value)。 我们也可认为右值的意思是被读取的值(read value)。 文字常量和变量都可
被用作右值。
2.它的地址值——即存储数据值的那块内存的地址。它有时被称为变量的左值(lvalue,
读作ell-value)。 我们也可认为左值的意思是位置值location value。 文字常量不能被用作
左值
在下面的表达式中:
ch = ch - 'O';
变量ch 同时出现在赋值操作符的左边和右边。右边的实例被读取,与其相关联的内存中
的数据值被读出。左边的ch 用作写入。减操作的结果被存储在ch 的位置值所指向的内存区
中,原来的数据值会被覆盖。在表达式的右边,ch 和文字字符常量用作右值。在左边,ch
用作左值。
”
为什么 左边的ch是 左值 呢?
不理解。请详细解释一下。
下面还有篇文章:
http://dev.csdn.net/develop/article/19/19165.shtm
没看懂!