C語言左值和右值

2021-05-27 05:21:01 字數 512 閱讀 5019

左值可以標記乙個儲存的位置,右值可以指定乙個值。

l-value中的l指的是location,表示可定址。the "l" in lvalue can be though of as location

r-value中的r指的是read,表示可讀。the "r" in rvalue can be thought of as "read" value.  

個人感覺,左值就是可以提供乙個確切的可操作的位址,比如前兩個賦值語句,左值都是正確的,因為它提供了乙個確定的位址,

變數名其實是乙個特殊的對位址的引用。第三條賦值語句錯誤,左值不正確,計算機計算a+24時會將結果存在某個位址,但是這對於我們是未知的,

正如乙個普通的整型常量是不可以作為左值的。那是乙個不合法的位址.

int a;

int * p ;

a = 29; //true

*p = 30 //true

( a + 24) = 10 ; //false

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

c 對於左值和右值沒有標準定義,但是有乙個被廣泛認同的說法 可見立即數,函式返回的值等都是右值 而非匿名物件 包括變數 函式返回的引用,const物件等都是左值。從本質上理解,建立和銷毀由編譯器幕後控制,程式設計師只能確保在本行 有效的,就是右值 包括立即數 而使用者建立的,通過作用域規則可知其生存...

C 左值和右值

c 左值與右值概念 變數和文字常量都有儲存區,並且有相關的型別,區別在於變數是可定址的 1 資料值,儲存在某個記憶體位址中,也稱右值 rvalue 右值是被讀取的值 read value 文字常量和變數都可被用於右值。2 位址值,即儲存資料值的那塊記憶體位址,也稱左值 lvalue 文字常量不能被用...

C 左值和右值

左值 lvalue 和右值 rvalue 是 c c 中乙個比較晦澀基礎的概念,有的人可能甚至沒有聽過,但這個概念到了 c 11 後卻變得十分重要,它們是理解 move,forward 等新語義的基礎。左值與右值這兩概念是從 c 中傳承而來的,在 c 中,左值指的是既能夠出現在等號左邊也能出現在等號...