Annotation of coherent/a/usr/man/ALL/lvalue, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: lvalue                      Definition                     lvalue
                      4: 
                      5: 
                      6: 
                      7: 
                      8: An lvalue  is an expression that designates  a region of storage.
                      9: The name  comes from the  assignment expression e1=e2;,  in which
                     10: the left operand must be an lvalue.
                     11: 
                     12: An identifier has both an lvalue (its address) and an rvalue (its
                     13: contents).   Some C  operators require  lvalue operands;  for ex-
                     14: ample, the  left operand  of an  assignment statement must  be an
                     15: lvalue.  Some operators give lvalue results; for example, if e is
                     16: a pointer expression, *e  is an lvalue that designates the object
                     17: to which e points.
                     18: 
                     19: A _v_a_r_i_a_b_l_e  can be used as an lvalue,  whereas a constant cannot.
                     20: For example, you cannot say
                     21: 
                     22: 
                     23:         6 = (foo+bar);
                     24: 
                     25: 
                     26: A pointer  is a variable,  and can be  manipulated within limits.
                     27: An  array name,  however,  is a  constant and  cannot be  altered
                     28: legally.  Thus, the code
                     29: 
                     30: 
                     31:         int foo[10];
                     32:         int *bar;
                     33:         foo = bar;
                     34: 
                     35: 
                     36: will generate  an error message  when you attempt  to compile it,
                     37: whereas
                     38: 
                     39: 
                     40:         int foo[10];
                     41:         int *bar;
                     42:         bar = foo;
                     43: 
                     44: 
                     45: will not.
                     46: 
                     47: The  following example  shows the  use  of both  an lvalue  and a
                     48: rvalue:
                     49: 
                     50: 
                     51: int i, *ip;
                     52: 
                     53: ip = &i;   /* ip is an lvalue, i and &i are rvalues */
                     54: i = 3;     /* i is an lvalue, 3 is an rvalue */
                     55: *ip = 4;   /* *ip is an lvalue, 4 is an rvalue */
                     56: 
                     57: 
                     58: ***** See Also *****
                     59: 
                     60: definitions, rvalue
                     61: 
                     62: 
                     63: 
                     64: COHERENT Lexicon                                           Page 1
                     65: 
                     66: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.