A postfix expression followed by an expression in square brackets is a
postfix expression. One of the expressions shall have the type “pointer
to T” and the other shall have unscoped enumeration or integral type.
The result is an lvalue of type “T.”
The type “T” shall be a completely-defined object type.62
The expression E1[E2] is identical (by definition) to
*((E1)+(E2))
[ *Note:*
see [expr.unary] and [expr.add] for details of * and
+ and [dcl.array] for details of arrays.
* — end note* ]

A *braced-init-list* shall not be used with the built-in subscript operator.

This is true even if the subscript operator is used in the following common idiom: &x[0].