Это то же самое что и "0123456789ABCDEF"[10]
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Abc123 17 января 2005 г. 16:56
В ответ на: С. обясните как это работает)) отправлено ы 17 января 2005 г. 16:45

В языке С индексное выражение
E1[E2]
эквивалентно
*(E1+E2)
и соответственно
E2[E1]
Где одно из E(E1 или E2) должно быть адресом,
а другое - целым.

Поэтому приведенный фрагмент
a = 0x0A;
b = a["0123456789ABCDEF"]; // b='A'


Эквивалентен
"0123456789ABCDEF"[a]
т.е. в данном конкретном случае:
"0123456789ABCDEF"[10]

Для тех кто "не привык к Си" или не знает теории,
легче понять такое:
char HexTable[16] = "0123456789ABCDEF";

char a = 10; // 10 = 0x0A
char b = HexTable[a];


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru