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
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 02 June 2005