Структуры — это составные типы данных, построенные с использованием других типов. Рассмотрим следующее определение структуры:
struct Time {
int hour; // 0-23 int minute; // 0-59 int second; // 0-59
} ;
Ключевое слово struct начинает определение структуры. Идентификатор Time — тег (обозначение, имя-этикетка) структуры. Тэг структуры используется при объявлении переменных структур данного типа. В этом примере имя нового типа — Time. Имена, объявленные в фигурных скобках описания структуры — это элементы структуры. Элементы одной и той же структуры должны иметь уникальные имена, но две разные структуры могут содержать не конфликтующие элементы с одинаковыми именами. Каждое определение структуры должно заканчиваться точкой с запятой. Приведенное объяснение, как мы вскоре увидим, верно и для классов.
Определение Time содержит три элемента типа int — hour, minute и second (часы, минуты и секунды). Элементы структуры могут быть любого типа и одна структура может содержать элементы многих разных типов. Структура не может, однако, содержать экземпляры самой себя. Например, элемент типа Time не может быть объявлен в определении структуры Time. Однако, может быть включен указатель на другую структуру Time. Структура, содержащая элемент, который является указателем на такой же структурный тип, называется структурой с самоадресацией. Структуры с самоадресацией полезны для формирования связных структур данных (см. главу 15).
Предыдущее определение структуры данных не резервирует никакого пространства в памяти; определение только создает новый тип данных, который используется для объявления переменных. Переменные структуры объявляются так же, как переменные других типов. Объявление
Time timeObject, timeArray[10], *timePtr;
объявляет timeObject переменной типа Time, timeArray — массивом с 10 элементами типа Time, a timePtr — указателем на объект типа Time.
Комментариев нет:
Отправить комментарий