參考
左值就是在賦值中可以放在賦值操作符兩邊的值,比如: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 // error
這裡3和"howdy"都是右值,所以不能放在賦值操作符左邊,一切常數、字元和字串都是右值。
左值和右值,左值引用和右值引用
左值 lvalue 這一術語 於c語言,用來指代那些可以用在賦值表示式左側的東西,具名物件 在棧和堆上分配的物件,或者其他物件的成員,總之就是又確定儲存空間的東西。而術語右值 rvalue 也是源自c語言,指的是只能在賦值表示式右側出現的東西,如字面值和臨時物件。只能繫結到左值,不能繫結到右值的引用...
左值和右值
c c 語言中可以放在賦值符號左邊的變數,即具有對應的可以由使用者訪問的儲存單元,並且能夠由使用者去改變其值的量。或者說左值是代表乙個記憶體位址值,並且通過這個記憶體位址,就可以對記憶體進行讀並且寫 主要是能寫 操作 這也就是為什麼左值可以被賦值的原因了。相對應的還有右值 當乙個符號或者常量放在操作...
左值和右值
左值和右值的區分標準在於能否獲取位址。最早的c 中,左值的定義表示的是可以獲取位址的表示式,它能出現在賦值語句的左邊,對該表示式進行賦值。但是修飾符const的出現使得可以宣告如下的識別符號,它可以取得位址,但是沒辦法對其進行賦值 const int i 10 i 與 i 的主要區別有兩個 1 i ...