СТРУКТУРЫ

 

В отличие от массива, структура позволяет иметь смешанные атрибуты различных типов данных. Структура создается при помощи ключевого слова 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;