c语言中什么是左值

Python016

c语言中什么是左值,第1张

左值是指可以被赋值的表达式。左值位于赋值语句的左侧,与其相对的右值(rvaule,见

1.11)则位于赋值语句的右侧。每条赋值语句都必须有一个左值和一个右值。左值必须是内存中一个可存储的变量,而不能是一个常量.

左值就是在赋值中可以放在赋值操作符两边的值,比如:

int

a

=

1

double

b

=

2.0

a

=

b

b

=

a

这里a和b都是左值,一切变量都是左值,但const变量是例外。

*p是一个左值,和变量一样,只要在*p的右边加上赋值运算符,就可改变*p的值。

如果p是一个指向常量的指针,*p就是一个不能修改的左值,即它不能被放到赋值运算符的左边。

i和

-i

都是表达式

但一个是左值(i),一个是右值(-i)。

++,--这两种操作符要求作用于左值,所以i++合法,(-i)++不合法。

不严谨的讲,左值右值的区分在于位于等号的那一侧,左侧的是左值,通常是一个变量,右侧的是右值,可以是一个变量,或者是一个表达式。