

lvalue                      Definition                     lvalue




An lvalue  is an expression that designates  a region of storage.
The name  comes from the  assignment expression e1=e2;,  in which
the left operand must be an lvalue.

An identifier has both an lvalue (its address) and an rvalue (its
contents).   Some C  operators require  lvalue operands;  for ex-
ample, the  left operand  of an  assignment statement must  be an
lvalue.  Some operators give lvalue results; for example, if e is
a pointer expression, *e  is an lvalue that designates the object
to which e points.

A _v_a_r_i_a_b_l_e  can be used as an lvalue,  whereas a constant cannot.
For example, you cannot say


        6 = (foo+bar);


A pointer  is a variable,  and can be  manipulated within limits.
An  array name,  however,  is a  constant and  cannot be  altered
legally.  Thus, the code


        int foo[10];
        int *bar;
        foo = bar;


will generate  an error message  when you attempt  to compile it,
whereas


        int foo[10];
        int *bar;
        bar = foo;


will not.

The  following example  shows the  use  of both  an lvalue  and a
rvalue:


int i, *ip;

ip = &i;   /* ip is an lvalue, i and &i are rvalues */
i = 3;     /* i is an lvalue, 3 is an rvalue */
*ip = 4;   /* *ip is an lvalue, 4 is an rvalue */


***** See Also *****

definitions, rvalue



COHERENT Lexicon                                           Page 1


