Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Ключевые слова int, float, char и т.д. называют конечными атрибутами декларации объектов программы. При декларации так называемых производных объектов используют еще дополнительные – промежуточные атрибуты или, как их иногда называют, «модификаторы».
К символам модификации текущего типа относятся:
– символ * перед идентификатором, обозначающий декларацию указателя на объект исходного типа (левый промежуточный атрибут);
– символы [ ] после идентификатора объекта – декларация массива объектов;
– символы () после идентификатора объекта – декларация функции (правые промежуточные атрибуты).
Допускается использование более одного модификатора типа с учетом следующих правил:
1) чем ближе модификатор к ID объекта, тем выше его приоритет;
2) при одинаковом расстоянии от идентификатора объекта модификаторы [ ] и () обладают приоритетом перед атрибутом звездочка *;
3) дополнительные круглые скобки позволяют изменить приоритет объединяемых ими элементов описания;
4) квадратные и круглые скобки, имеющие одинаковый приоритет, рассматриваются слева направо.
Конечный атрибут декларации принимается во внимание в последнюю очередь, т.е. тогда, когда все промежуточные атрибуты уже проинтерпретированы.
Примеры декларации объектов с конечным атрибутом int:
int a; – переменная типа int;
int a [5]; – массив из пяти элементов типа int;
int * a; – указатель на объект типа int;
int ** a; – указатель на указатель на объект типа int;
int * a [5]; – массив из пяти указателей на элементы типа int;
int (* a)[10]; – указатель на массив из десяти элементов типа int;
int * a [3][4]; – 3-элементный массив указателей на одномерные целочисленные массивы по четыре элемента каждый;
int a [5][2]; – двухмерный массив элементов типа int;
int a (void); – функция без параметров, возвращающая значение типа int;
int * a (void); – функция без параметров, возвращающая указатель на элемент типа int;
int (* a)(void); – указатель на функцию без параметров, возвращающую значение типа int;
int * a (void)[6]; – функция без параметров, возвращающая указатель на массив элементов типа int;
int * a [4](void); – массив указателей на функцию без параметров, возвращающую значение типа int.
Существуют и недопустимые последовательности промежуточных атрибутов, например, массив не может состоять из функций, а функция не может возвращать массив или другую функцию.
Дата публикования: 2015-09-17; Прочитано: 397 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!