左值與右值的簡單理解

2021-10-03 10:43:05 字數 655 閱讀 1305

左值與右值的理解:當乙個物件被用作右值的時候,用的是物件的值(內容),往往是占用的臨時記憶體;當物件被用作左值的時候,用的是物件的身份(記憶體中的位置),往往是占用的固定記憶體。

int a = 1;     // a是乙個左值

int b = 2; // b是乙個左值

int c = a + b; // +運算子需要右值,a和b都轉換成右值,並且返回乙個右值

// 賦值運算子需要乙個(非常量)左值作為左側運算物件, 其返回物件也是乙個左值

10 = a; // 錯誤,字面值是右值

a+b = 11; // 錯誤,算術表示式是右值

// 解引用運算子*、 取位址運算子&

int *ptr = &a; // &運算子將左值a轉變成右值

*ptr = 10; // *解引用運算子的求值結果是左值

// 下標運算子

int array = ;

array[1] = 10; // 下標運算的求值結果是左值

++a; // 自加運算子 返回結果為左值

cin >> a >> b; // 輸入、輸出運算子 返回結果為左值

乙個左值與右值詳細介紹的部落格

左值與右值

本文摘自 http jiang5005.spaces.live.com blog cns 619f3de8ab99988e 111.entry?action post wa wsignin1.0 8月20日 c 中的左值和右值 1.概念 變數和文字常量都有儲存區,並且有相關的型別,區別在於變數是可定...

左值與右值

左值就是那些能夠出現在賦值符號左邊的東西。右值就是那些可以出現賦值符號右邊的東西。例如 a b 25 a就是乙個左值,因為它標識了乙個可以儲存結果值的地點,b 25是個右值,因為它指定了乙個值。但是它們可以互換嗎?b 25 a 原先用作左值的a此時也可以當作右值,因為每個位置都 包含乙個值。然而,b...

左值與右值

對左值和右值的乙個最常見的誤解是 等號左邊的就是左值,等號右邊的就是右值。左值和右值都是針對表示式而言的,左值是指表示式結束後依然存在的持久物件,右值是指表示式結束時就不再存在的臨時物件。乙個區分左值與右值的便捷方法是 看能不能對表示式取位址,如果能,則為左值,否則為右值。下面給出一些例子來進行說明...