Consider the below program.
Pretty Simple program.. huh… Output will be 0.
Now if you replace arr with 0[arr], the output would be same. Because compiler converts the array operation in pointers before accessing the array elements.
e.g. arr would be *(arr + 0) and therefore 0[arr] would be *(0 + arr) and you know that both *(arr + 0) and *(0 + arr) are same.
Please write comments if you find anything incorrect in the above article.