3 ms·
Right, arr[index] is sugar for *(arr+index) which is then also *(index+arr) and index[arr] edit: fixed escaped asterisks :-)
by justinsaccount 4y ago
Right, arr[index] is sugar for *(arr+index) which is then also *(index+arr) and index[arr]
edit: fixed escaped asterisks :-)
- jbverschoor 4y agoThat sounds soo dirty though
- krylon 4y agoIt is[0]. Duff's device, whether you like it or hate it, was a performance optimization at least, saying "idx[arr]" instead of "arr[idx]" does not help in any way and will make some people angry or sad. 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.
- taneq 4y ago> Contestants in the International Obfuscated C Code Contest will (and probably already have) find delightful ways to use and abuse this syntactical curiosity. 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. ;)