A funny little fact: - in C/C++ you can reverse array name and access index:
int arr[] = { 1, 2, 3 };
int x = arr[2]; // x == 3
int y = 2[arr]; // y == 3
I guess that's because behind the scene the compiler is replacing an array access with plain pointer arithmetic:
int z = *(arr + 2); //z == 3
Btw, my favorite C book is "Expert C Programming: Deep C Secrets" by Peter van der Linden (surprisingly the book is pretty funny too).
http://www.amazon.com/Expert-Prog...ng-Peter-van-Linden/dp/0131774298