Is there any strange in this case?

We usually write arr[i] to get i-th element of array. But when I write i[arr] program works, too! Can you explain why?
Ex:
int arr [] = {2,3,4}
std::cout << 1[arr] << 2[arr] << 0[arr]
It came out in the forum some time ago:
1
2
3
4
5
6
// declarations:
int i;
int arr[n];

// explanation, the = means 'has the same value as' 
arr[i] = *(arr+i) = *(i+arr) = i[arr]
Thanks
Topic archived. No new replies allowed.