[an error occurred while processing this directive]
|
2.9 Я наткнулась на шуточный код, содержащий "выражение"
5"abcdef"].Почему такие выражения возможны в С?
О: Да, Вирджиния, индекс и имя массива можно переставлять в С. Этот забавный факт следует из определения индексации через указатель, а именно, a[e] идентично *((a)+(e)), для _любого_ выраженияе и основного выражения а, до тех пор пока одно из них будет указателем, а другое целочисленным выражением. Это неожиданная коммутативность часто со странной гордостью упоминается в С-текстах, но за пределами Соревнований по Непонятному Программированию (Obfuscated C Contest) она применения не находит.
E-mail: info@telesys.ru