Вложенные структуры

Одним из полей структуры (внешней) может быть другая структура (внутренняя, вложенная). При этом возможны два способа описания шаблона.

Способ 1. Совместное описание структур (внешней и вложенной):

struct STUDENT { char name [30]; /* поле внешней структуры */

struct { int day; /* шаблон вложенной структуры */

int month;

int year;

} born; /* поле вложенной структуры */

};

Такое описание шаблонов выглядит громоздким.

Способ 2. Раздельное описание шаблонов:

struct DATA { int day; int month; int year; }; /* шаблон структуры */

struct STUDENT { char name [30]; /* поле внешней структуры */ struct DATA born; /* поле вложенной структуры */ };

Глубина вложения структур неограниченна. Единственное ограничение – структура не может вкладываться сама в себя, то есть некорректно следующее описание:

struct STUDENT{ char name [30];

struct STUDENT my_own; /* ОШИБКА!*/

};

Однако разрешается использовать в описываемом шаблоне поле - указатель (ссылку) на описываемую структуру, например, корректно такое описание:

struct STUDENT { char name [30];

struct STUDENT *my_own; /* допустимый указатель на собственную структуру */

};

Обращение к полям структуры

Для доступа к отдельным полям структурной переменной (не указателя) используется операция ‘.’ (точка), формирующая ссылку на поле по схеме:

переменная. поле


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: