Почему 2 [a] можно скомпилировать, если только объявить int a [3] в C.
1 #include <stdio.h>
2
3 int main(int argc, char **argv)
4 {
5 int a[3] = {1, 2, 3};
6 printf("a[2] is: %d\n", a[2]);
7 printf("2[a] is: %d\n", 2[a]);
8
9 return 0;
10 }
А на выходе оба 3, как это объяснить?