Originally Posted by ISO C, 6.5.2.1
Successive subscript operators designate an element of a multidimensional array object.
If E is an n-dimensional array (n ³ 2) with dimensions i ´ j ´ . . . ´ k, then E (used as
other than an lvalue) is converted to a pointer to an (n - 1)-dimensional array with
dimensions j ´ . . . ´ k. If the unary * operator is applied to this pointer explicitly, or
implicitly as a result of subscripting, the result is the pointed-to (n - 1)-dimensional array,
which itself is converted into a pointer if used as other than an lvalue.