Jan 13, 2010 22:05
В языке С к массиву можно обращаться по индексу несколькими способами. Помимо привычного (arr[10]) есть и еще один, куда менее известный:
int arr[10];
3[arr] = 1;
5[arr] = 2;
...
Все потому что стандартная запись arr[3] означает *(arr + 3), а вышеприведенная запись означает *(3 + arr), что в принципе одно и то же.
Этой штуке есть даже полезное применение. Например,
int x = 14;
printf("%c\n", "0123456789ABCDEF"[x & 0xf]);
выведет шестнадцатиричную запись числа x. Век живи - век учись :)
c,
c++