I knew about the first sentence, but the second really obscure.
Accessing an element of an array via ptr[3] is actually just short for *(ptr + 3).
This can be equivalently written as *(3 + ptr) and therefore as 3[ptr], which turns out to be completely valid code.