arr[index] is equivalent to index[arr]
This works because arr points to the memory location of the zeroth index of the array and index is the offset from that memory location. Since addition is commutative so too is the array notation.
arr[index] is equivalent to index[arr]
This works because arr points to the memory location of the zeroth index of the array and index is the offset from that memory location. Since addition is commutative so too is the array notation.
edit: fixed escaped asterisks :-)
Contestants in the International Obfuscated C Code Contest will (and probably already have) find delightful ways to use and abuse this syntactical curiosity.
[0] My one-track mind always wants to jump to pirate jokes.
EDIT: If you like to explore this area, I highly recommend "Expert C Programming - Deep C Secrets" (get the pun? There's a fish on the cover...) by Peter Van Der Linden. It's pretty old (it talks about DOS memory models, among other things), but it is a fun deep dive into the murky corners of C. I wish there was an updated version and/or books covering other languages in that style.
The OCCC is where I learned about this in the first place!
Surely it counts as useful if it could be used to confuse The Enemy. ;)