A.5.1 Pointer indirection
A pointer-indirection-expression consists of an asterisk (
*) followed by a unary-expression.
- * unary-expression
* operator denotes pointer indirection and is used to obtain the variable to which a pointer points. The result of evaluating
P is an expression of a pointer type
T*, is a variable of type
T. It is a compile-time error to apply the unary
* operator to an expression of type
void* or to an expression that isn't of a pointer type.
The effect of applying the unary
* operator to a
null pointer is implementation-defined. In particular, there is no guarantee that this operation throws a
If an invalid value has been assigned to the pointer, the behavior of the unary
* operator is undefined. Among the invalid values for dereferencing a pointer by the unary
* operator are an address inappropriately aligned for the type pointed to (see example in Section A.4), and the address of a variable after the end of its lifetime.
For purposes of definite assignment analysis, a variable produced by evaluating an expression of the form
*P is considered initially assigned (Section 5.3.1).