Posted on 2006-08-04 10:54
一秋草木 閱讀(1169)
評論(0) 編輯 收藏 引用 所屬分類:
C++
先介紹幾個概念:
1
、與數(shù)據(jù)對象相關(guān)的值有兩種:
n????????
數(shù)據(jù)值
即存儲在某個內(nèi)存地址中的數(shù)據(jù)本身。
n????????
地址值
即該數(shù)據(jù)對象的存儲位置。
2
、
lvalue
與
rvalue
n????????
lvalue
通常指的是可以尋址并且可以對該地址內(nèi)容存儲的對象進(jìn)行寫操作
(writeable)
??梢钥醋?/span>
location value
。
n????????
rvalue
通常指的是那些能夠提供數(shù)據(jù)值的數(shù)據(jù),即從某個
mem
中讀出的
value
??梢哉J(rèn)為是
read value
。
3
、文字常量(
literate const
)與變量(
variable
)
n????????
文字常量
即通常指的數(shù)字(
1
,
200
,。。。)。該數(shù)據(jù)對象分配在常量內(nèi)存區(qū)域,不可以尋址,也就是不可以通過操作它的地址值來變更的數(shù)據(jù)對象。因此不能作為
lvalue
出現(xiàn),只能是
rvalue
n????????
變量
可以尋址。通過變量名就可以改變該數(shù)據(jù)地址的內(nèi)容。所以可以成為
lvalue
、
rvalue
?
總結(jié):
u??????
lvalue
:可以通過數(shù)據(jù)對象自身地址來改變數(shù)據(jù)對象值的數(shù)據(jù)對象,要求該對象可以尋址。
u??????
rvalue
:能夠提供數(shù)據(jù)對象本身數(shù)值的數(shù)據(jù)對象,該對象不一定可以尋址
u??????
由操作符決定需要什么類型的數(shù)據(jù)值類型
?
注意:
lvalue
中的
’l’
不是
left
的意思,既不是指在操作符左邊。同樣
’r’
不是
right
??????
例如:
x++;
?????? ++x;
??????
兩個表達(dá)式均要求
x
是
lvalue
。
?
使用舉例:
①.????
0=1
;
??????????? //error, 0
不是
lvalue
②.????
x+0.1*y=z;???? //error,
在賦值運算符左邊的應(yīng)該為
lvalue
③.????
const int size=4;
size=10;???????? //error,
數(shù)據(jù)對象地址內(nèi)容不可以改變,即不是
writeable