An object that is not an array element is considered to belong
to a single-element array for this purpose; see [expr.unary.op].
A pointer past the last element of an array x
is considered to be equivalent to a pointer
to a hypothetical element x[n]
for this purpose;
— end note