A const volatile object is an object of type
constvolatile T, a non-mutable subobject of a const volatile object,
a const subobject of a volatile object, or a non-mutable volatile
subobject of a const object.
Cv-qualifiers applied to an array
type attach to the underlying element type, so the notation
“cvT”, where T is an array type, refers to
an array whose elements are so-qualified ([dcl.array]).
— end note]
[Example 1: typedefchar CA[5];
typedefconstchar CC;
CC arr1[5]={0};
const CA arr2 ={0};
The type of both arr1 and arr2 is “array of 5
constchar”, and the array type is considered to be
const-qualified.
In this document, the notation cv (or
cv1, cv2, etc.)
, used in the description of types,
represents an arbitrary set of cv-qualifiers, i.e., one of
{const}, {volatile}, {const,
volatile}, or the empty set.
The same representation and alignment requirements
are meant to imply interchangeability as
arguments to functions,
return values from functions, and
non-static data members of unions.