[СКП] СТ ИО [=ИИ]
СКП - спецификатор класса памяти
СТ - спецификатор типа
ИО - идентификатор области
ИИ - инициатор
Модификатор (включается в СТ)
* указатель
[] массив
() функция
int*a; - указатель
int a[10]; - массив
int a(); - функция, которая возвращает значение на целый тип данных
1)Квадратные или круглые скобки слева от идентификатора имеют приоритет перед звездочкой слева. Квадратные и круглые скобки имеют один и тот же приоритет и рассматриваются слева направо. Спецификатор типа рассматривается на последнем этапе. Можно использовать круглые скобки для того, чтобы изменить порядок интерпретации на необходимый.
2)Интерпретацию сложных описателей можно производить изнутри наружу. Начинать интерпретацию надо с идентификатора (с имени идентификатора) и посмотреть вправо, есть ли квадратные или круглые скобки. Если они есть, то они интерпретируются, после чего снова посмотреть налево в поисках звездочки.
Если на любом этапе встречаются круглые скобки, то все эти правила применяются внутри этих скобок.
![]()
- массив указателей на функцию, которая возвращает указатель на целый тип данных.
1 - имя переменной
2 - массив из 10 элементов
3 - массив из 10 указателей
4 - массив из 10 указателей на функцию
5 - функция возвращает указатель
6 - функция возвращает указатель на целый тип данных
int **(**fun[10])();

typedef int*(*fun[10])(); - новый тип данных
fun D1; - переменная D1 типа fun
D1[1] =
NULL;