A.5 Pointers in expressions
In an unsafe context an expression may yield a result of a pointer type, but outside an unsafe context it is a compile-time error for an expression to be of a pointer type. In precise terms, outside an unsafe context a compile-time error occurs if any simple-name (Section 7.5.2), member-access (Section 7.5.4), invocation-expression (Section 7.5.5), or element-access (Section 7.5.6) is of a pointer type.
These constructs are described in the following sections. The precedence and associativity of the unsafe operators is implied by the grammar.