Posted on 2006-08-04 10:54
一秋草木 阅读(1159)
评论(0) 编辑 收藏 引用 所属分类:
C++
先介绍几个概念:
1
、与数据对象相关的值有两种:
n
数据值
即存储在某个内存地址中的数据本身。
n
地址值
即该数据对象的存储位置。
2
、
lvalue
与
rvalue
n
lvalue
通常指的是可以寻址并且可以对该地址内容存储的对象进行写操作
(writeable)
。可以看作
location value
。
n
rvalue
通常指的是那些能够提供数据值的数据,即从某个
mem
中读出的
value
。可以认为是
read value
。
3
、文字常量(
literate const
)与变量(
variable
)
n
文字常量
即通常指的数字(
1
,
200
,。。。)。该数据对象分配在常量内存区域,不可以寻址,也就是不可以通过操作它的地址值来变更的数据对象。因此不能作为
lvalue
出现,只能是
rvalue
n
变量
可以寻址。通过变量名就可以改变该数据地址的内容。所以可以成为
lvalue
、
rvalue
总结:
u
lvalue
:可以通过数据对象自身地址来改变数据对象值的数据对象,要求该对象可以寻址。
u
rvalue
:能够提供数据对象本身数值的数据对象,该对象不一定可以寻址
u
由操作符决定需要什么类型的数据值类型
注意:
lvalue
中的
’l’
不是
left
的意思,既不是指在操作符左边。同样
’r’
不是
right
例如:
x++;
++x;
两个表达式均要求
x
是
lvalue
。
使用举例:
①.
0=1
;
//error, 0
不是
lvalue
②.
x+0.1*y=z; //error,
在赋值运算符左边的应该为
lvalue
③.
const int size=4;
size=10; //error,
数据对象地址内容不可以改变,即不是
writeable