按字面意思,通俗地說。以賦值符號 = 為界,= 左邊的就是左值,= 右邊就是右值。
比如:(1) int b = 3;
(2) int a = b;第(2)行**,a為左值,b為右值。
變數名編譯之後,會對映成記憶體位址。看看a = b的含義。其實就是 將 "b位址記憶體裡面的資料",放到"a位址記憶體"中
l-value :l, 理解成 location,表示定位,位址。
r-value: r 理解成 read,表示讀取資料(non-lvalue 相等於 r-value)
左值:
c/c++語言中可以放在賦值符號左邊的變數,即具有對應的可以由使用者訪問的儲存單元
,並且能夠由使用者去改變其值的量。左值
表示儲存在計算機記憶體的物件,而不是常量或計算的結果。或者說左值是代表乙個記憶體位址值,並且通過這個記憶體位址,就可以對記憶體進行讀並且寫(主要是能寫)操作;這也就是為什麼左值可以被賦值的原因了。
右值:
相對應的還有右值
:當乙個符號或者常量放在操作符
右邊的時候,計算機就讀取他們的「右值」,也就是其代表的真實值。簡單來說就是,左值相當於位址值,右值相當於資料值。右值指的是引用了乙個儲存在某個記憶體位址裡的資料。
總結:關於右值和左值區別,在於這個值通過使用者訪問修改和有自己的空間即為左值;否則為右值。
左值和右值,左值引用和右值引用
左值 lvalue 這一術語 於c語言,用來指代那些可以用在賦值表示式左側的東西,具名物件 在棧和堆上分配的物件,或者其他物件的成員,總之就是又確定儲存空間的東西。而術語右值 rvalue 也是源自c語言,指的是只能在賦值表示式右側出現的東西,如字面值和臨時物件。只能繫結到左值,不能繫結到右值的引用...
左值和右值
c c 語言中可以放在賦值符號左邊的變數,即具有對應的可以由使用者訪問的儲存單元,並且能夠由使用者去改變其值的量。或者說左值是代表乙個記憶體位址值,並且通過這個記憶體位址,就可以對記憶體進行讀並且寫 主要是能寫 操作 這也就是為什麼左值可以被賦值的原因了。相對應的還有右值 當乙個符號或者常量放在操作...
左值和右值
參考 左值就是在賦值中可以放在賦值操作符兩邊的值,比如 int a 1 double b 2.0 a b b a 這裡a和b都是左值,一切變數都是左值,但const量是例外。而右值則是只可以放在賦值操作符右邊的值,比如 int a 0 char b hello 3 a error howdy b e...