C++ 中的左值和右值是什麼?
左值(定位值)表示佔據記憶體中某個可識別位置的物件(即具有地址)。
右值透過排除定義。每個表示式要麼是左值,要麼是右值,所以右值是不表示佔據記憶體中某個可識別位置的物件的表示式。
例如,分配期望左值作為其左運算元,因此以下內容有效 −
int i = 10; But this is not: int i; 10 = i;
這是因為i在記憶體中有地址,並且是左值。而 10 沒有可識別的記憶體位置,因此是右值。所以將i的值賦值給 10 沒有意義。
廣告
左值(定位值)表示佔據記憶體中某個可識別位置的物件(即具有地址)。
右值透過排除定義。每個表示式要麼是左值,要麼是右值,所以右值是不表示佔據記憶體中某個可識別位置的物件的表示式。
例如,分配期望左值作為其左運算元,因此以下內容有效 −
int i = 10; But this is not: int i; 10 = i;
這是因為i在記憶體中有地址,並且是左值。而 10 沒有可識別的記憶體位置,因此是右值。所以將i的值賦值給 10 沒有意義。