Если полем структуры является другая структура, то получается вложенная структура. Определим структуры для времени и даты:
struct Time {
int hour, min, sec;
};
struct Date {
int day, month, year;
};
Теперь можно построить вложенную структуру DateTime:
struct DateTime {
Date today;
Time now;
};
Доступ к полям вложенной структуры осуществляется с помощью нескольких операций точка (.). Например, если объявить переменную dt:
DateTime dt;
то можно записать следующие операторы:
dt.today.year = 2011;
dt.hour.minute = 33;
Массивы в структурах
Полем структуры может быть одномерный или двумерный массивы фиксированной размерности. Например:
struct Matr {
int a[2][3];
float b[3];
char fio[20];
};
.....
Matr st;
st.a[0][0] = 25; cout<<st.a[i][j];
cin>>st.b[2]; st.fio[0] = '*';
Массив структур
Синтаксис объявления массива структур совершенно аналогичен объявлению массива любого другого типа. Сначала необходимо определить структурный тип, а затем объявить массив переменных данного типа. Например:
struct Date {
int day, month, year;
};
struct Person {
char fam[20];
Date birthday; // вложенная структура Date
long telNumber;
|
|
};
Date list[10]; // объявлен массив структур list
const n = 100;
Person p1[n]; // объявлен массив структур p1
Matr a[n]; // объявлен массив структур a
…
Для доступа к полям структур элементов массива имя массива структур индексируется, и затем через операцию точка (.) указывается поле структруры:
cin>>list[1].day;
cin>>list.day[2]; // нельзя
cout<<p1[i].birthday.day;
matr[0].a[0][1] = 25;