Не все знают

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++

Previous post Next post
Up