Types for lvalues
const and volatile are part of an identifier's type,
not its storage class.
However,
they are peculiar in that they are often removed from the top-most
part of the type.
This occurs when an object's value is fetched in the evaluation
of an expression --
exactly at the point when an lvalue becomes an rvalue.
(These terms arise from the prototypical assignment "L=R"
;
in which the left side must still refer directly to an object
(an lvalue)
and the right side need only be a value
(an rvalue).)
Therefore, only expressions that are lvalues can be qualified by
const or volatile or both.
Next topic:
Type qualifiers in derived types
Previous topic:
Using const and volatile
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003