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 没有意义。