Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Структуры могут быть вложенными, т.е. поле структуры может связующим полем с внутренней структурой, описание которой должно предшествовать по отношению к основному шаблону.
Например, в структуре person, содержащей сведения - Ф.И.О., дата рождения, сделать дату рождения внутренней структурой date по отношению к структуре person. Тогда шаблон такой конструкции будет выглядеть так:
struct date {
int day, month, year;
};
struct person {
char fio[40];
struct date f1;
};
Объявляем переменную и указатель на переменные такой структуры:
struct person a, *p;
Инициализируем указатель p адресом переменной а:
p = &a;
Тогда, обращение к полям структурной переменной a будет выглядеть следующим образом:
a. fio a. f1. day a. f1. month a. f1. year
или
p -> fio p -> f1. day p -> f1. month p -> f1. year
Можно в качестве связи с вложенной структурой использовать указатель на нее:
struct date {
int day, month, year;
};
struct person {
char fio[40];
struct date *f1;
};
Тогда обращение к полям будет следующим:
a. fio a. f1 -> day a. f1 -> month a. f1 -> year
или
p -> fio p -> f1 -> day p -> f1 -> month p -> f1 -> year
Использование средства typedef упрощает определение структурных переменных, так как отпадает необходимость при их декларации указывать ключевое слово stuct. Например:
typedef struct person {
char fio[40];
int day, month, year;
} W;
здесь W - созданный пользователем тип данных - «структура с указанными полями» и для нашего примера:
W t1, t2; - декларация двух переменных типа W, а это значит, что можно на такие переменные устанавливать указатели и использовать косвенную адресацию.
Дата публикования: 2015-09-17; Прочитано: 152 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!