Существует статья превосходная по этому URL при чтении объявлений типа C. Автор, Эли Бендерский, дает простой метод для чтения деклараций. Вы начинаете с имени переменной, а затем двигаетесь вдоль линии, произнося то, с чем вы сталкиваетесь, когда вы идете. Основной метод - начать с имени переменной и идти вправо. Я приведу простой обзор, но я настоятельно рекомендую вам прочитать статью.
- Начинайте с имени переменной и двигайтесь вправо.
- Если вы нажмете правую пареню
)
или точку с запятой ;
, то вернитесь туда, откуда вы начали идти направо, а затем - налево.
- Если вы столкнулись с левой пареной
(
во время движения вправо, то вы столкнулись с объявлением function , и далее следует список аргументов через запятую. Примечание : вы встретите правую часть в конце списка аргументов. Приведенное выше правило не распространяется на это право.
- Если вы встретите левую скобку, прочитайте ее как «массив».
- Пройдя налево, когда вы нажмете левую парену
(
, затем вернитесь в правую пареню, где вы в последний раз шли направо. Перепрыгни через правую пареню и продолжай повторять.
- [Повтор]
Итак, применяя это правило к вашей конкретной проблеме ...
В объявлении "int * a[3];
", a
- имя переменной. Итак, читается:
a
- это массив ([
) из 3 элементов ([3]
) указателей (*
) на целые числа (int
)
В объявлении "int (* a)[3];
", a
- имя переменной. Итак, читается:
a
- указатель (*
) на массив ([
) из 3 элементов ([3]
) целых чисел (int
)