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 沒有意義。