Стандарт Си определяет [] как оператор следующим образом:
a[b] == *(a + b)
Следовательно , a[10] будет вычисляться как:
*(a + 10)
а 10[a] будет вычисляться как
*(10 + a)
a - указатель на первый элемент массива. a[10] - это значение, которое на 10 элементов дальше от a, что совпадает с *(a + 10)