Annotation of coherent/a/usr/man/ALL/lvalue, revision 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.