Next: Modifying Assignment, Previous: Simple Assignment, Up: Assignment Expressions [Contents][Index]
An expression that identifies a memory space that holds a value is called an lvalue, because it is a location that can hold a value.
The standard kinds of lvalues are:
If an expression’s outermost operation is any other operator, that
expression is not an lvalue. Thus, the variable x
is an
lvalue, but x + 0
is not, even though these two expressions
compute the same value (assuming x
is a number).
An array can be an lvalue (the rules above determine whether it is
one), but using the array in an expression converts it automatically
to a pointer to the zeroth element. The result of this conversion is
not an lvalue. Thus, if the variable a
is an array, you can’t
use a
by itself as the left operand of an assignment. But you
can assign to an element of a
, such as a[0]
. That is an
lvalue since a
is an lvalue.