Cтруктуры - это составной объект, в который входят элементы любых типов, за исключением функций. В отличие от массива, все элементы которого однотипны, структура может содержать элементы разных типов:
struct [ имя_типа ]
{ тип_1 элемент_1;
тип_2 элемент_2;
тип_п элемент_п;
} [ список_описателей ];
Элементы структуры называются полями структуры и могут иметь любой тип. Если отсутствует имя типа, должен быть указан список описателей переменных, указателей или массивов.
struct
{
int year;
char month[10];
int day;
} date, date2;
Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами, например:
struct student{ // описание нового типа Worker
char fio[30];
long int num_zac;
double sr_bal;
}; // описание заканчивается точкой с запятой
// определение массива типа student и указателя на тип student.
student gr[30], *p:
Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование. Структуру можно передавать в функцию и возвращать в качестве значения функции. Размер структуры не обязательно равен сумме размеров ее элементов, поскольку они могут быть выровнены по границам слова.
Доступ к полям структуры выполняется с помощью операций выбора . (точка) при обращении к полю через имя структуры и -> при обращении через указатель, например:
student student 1, gr[30], *p;
student .fio = "Страусенке":
gr[8] .sr_bal=5;
p->num_zac = 012001;
Если элементом структуры является другая структура, то доступ к ее элементам выполняется через две операции выбора:
struct A {int a, double х;};
struct В {A a, double х,} х[2];
х[0] .а. а = 1;
х[1]. х = 0.1;
Как видно из примера, поля разных структур могут иметь одинаковые имена, поскольку у них разная область видимости.
Пример: Написать программу, выполняющую следующие действия:
§ ввод с клавиатуры данных в массив GAI, состоящий из шести элементов типа AVTO;
§ вывод на экран информации об владельцах автомобиля, марка которого вводится которого вводится с клавиатуры;
§ если таковых авторов нет, то на экран дисплея вывести соответствующее сообщение.