Yeah!!! Looks funny but true.
In C array indexing is actually defined as
a[i] = *(a+i)
You can also make this as
a[i] = *(i+a)
As from our childhood math, we know, a+i and i+a are equal.
As pointers are memory addressing, a[i] that is defined as *(a+i) is address of i elements further from address of “a”. This is also equal to “a” from i elements from beginning of address space (i+a).
"ABCD" == 2["ABCD"] == 'C'