左值和右值

2021-10-02 08:18:38 字數 357 閱讀 9319

按字面意思,通俗地說。以賦值符號 = 為界,= 左邊的就是左值,= 右邊就是右值。 比如:(1) int b = 3;(2) int a = b;第(2)行**,a為左值,b為右值。

更深一層,可以將 l-value 的 l, 理解成 location,表示定位,位址。將 r-value 的 r 理解成 read,表示讀取資料。現在的計算機資料放在記憶體。記憶體有兩個很基本的屬性:記憶體位址和記憶體裡面放的資料。想象完全一樣的箱子。每個箱子有個編號,用來區分到底是哪個箱子,箱子裡面可以放東西。記憶體位址相當於箱子的編號,記憶體的資料,相當於箱子裡面放的東西。

變數名編譯之後,會對映成記憶體位址。看看a = b的含義。其實就是 將 「b位址記憶體裡面的資料」,放到"a位址記憶體"中。

左值和右值,左值引用和右值引用

左值 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...