ВУЗ:
Составители:
Рубрика:
53
12. Объявления объектов и типов
При объявлениях можно использовать одновременно более одно-
го модификатора (это * [ ] и ( ) ). Это даёт возможность создавать
бесконечное множество сложных описателей типов. В то же время, не-
которые комбинации недопустимы:
элементами массива не могут быть функции;
функции не могут возвращать массив или функцию.
При интерпретации сложных описателей квадратные и круглые
скобки (справа от идентификатора) имеют приоритет перед * (слева от
идентификатора). Квадратные или круглые скобки имеют один и тот же
приоритет.
Спецификатор типа рассматривается на последнем шаге. Можно
использовать круглые скобки, чтобы изменить порядок интерпретации
на необходимый. Для правильной интерпретации сложных описателей
можно придерживаться следующего правила («изнутри – наружу»).
Начать с идентификатора и посмотреть вправо, есть ли квадрат-
ные или круглые скобки.
Если они есть, то проинтерпретировать эту часть описателя и за-
тем посмотреть налево в поиске *.
Если на любой стадии справа встретится закрывающая круглая
скобка, то вначале необходимо применить все эти правила внутри круг-
лых скобок, а затем продолжить интерпретацию.
Интерпретировать спецификатор типа.
Например, при использовании конструкции
int *(*array[10]) ( );
объявляется имя array как массив из 10 указателей на функцию без ар-
гументов, возвращающую указатель на целое значение.
13. Имена типов
В некоторых конструкциях языка явно используются имена типов
(операции sizeof, new, cast). Имя типа – это просто объявление объекта
такого типа, в котором опущено имя самого объекта.
Примеры имён типов:
int – целое,
double – плавающее с двойной точностью,
Страницы
- « первая
- ‹ предыдущая
- …
- 49
- 50
- 51
- 52
- 53
- …
- следующая ›
- последняя »