c语言中的“左值”和“右值”
左值
左值就是在赋值中可以放在赋值操作符 (=) 左边 的值,当然也可以放在右边,比如:
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"都是右值,所以不能放在赋值操作符左边,一切常数、字符和字符串都是右值。