В отличие от массива, структура позволяет иметь смешанные атрибуты различных типов данных. Структура создается при помощи ключевого слова struct, за которым следует имя_типа (имя структуры) и список элементов. Описание структуры заканчивается точкой с запятой, т.к. оно является оператором:
struct имя_типа
{
тип_элемента1 имя_элемента1;
тип_элемента2 имя_элемента2;
тип_элемента3 имя_элемента3;
…
};
Эта структура описывает новый тип данных stboat и содержит три текстовых поля, одно целое и одно действительное. С описанной структурой не связывается никакая переменная. Для создания новой переменной используется оператор (слово struct является необязательным):
struct имя_структуры имя-переменной;
Для вышеприведенного примера можно создать переменную
used_boat:
struct sboat used_boat;
Если со структурой связывается только одна переменная, то ее можно объявить непосредственно в описании структуры перед точкой с запятой. Имя_типа в этом случае можно опустить:
Struct
{
char type[16]; // тип
char model[16]; // модель
char title[20]; // имя
int year; // год выпуска
double price; // цена
} used_boat;
ДОСТУП К ЭЛЕМЕНТАМ СТРУКТУРЫ
Для обращения к отдельным элементам структуры используется операция обращения к члену структуры – “точка”. Она разделяет имя структурной переменной и имя поля, например
used_boat.year=1955;
printf(“%lf”,used_boat_price);
Элементы структуры обрабатываются также, как и любые другие переменные С, необходимо только использовать операцию “точка”. Можно создавать массивы структур и указатели на структуру, для обращения к элементам структуры предусмотрен оператор “–>” (стрелка, он состоит из знаков минус и больше).
sboat boat_array[10];
boat_array[3].year=1980;
sboat *pboat;
pboat=&used_boat;
pboat–>price=12570.25;