Массив структур

Определим шаблон структуры data, содержащий информацию о дне рождения (год, месяц, день), и структурные переменные masha_data и sasha_data с информацией о днях рождения Маши и Саши:

struct data

{

int year; //год

unsigned mes; //месяц

unsigned day; //день

};

data masha_data, sasha_data;

Тогда:

masha_data.day //доступ к полю «день рождения» Маши

sasha_data.year //доступ к полю «год рождения» Саши

masha_data (вся информация о дате рождения Маши),

sasha_data (вся информация о дате рождения Саши).

Для данного структурного типа опишем массив структур person_data:

data person_data [20];

Тогда:

person_data – информация о датах рождения всей группы (массива людей из двадцати человек);

person_data[i] – информация о дате рождения (i+1) – го члена группы (i – ый элемент массива);

person_data[i]. mes – месяц рождения (i+1) – го члена группы;

Определим структурный тип (шаблон структуры) mash с информацией о владельце автомобиля: номер, марка автомобиля, фамилия и адрес владельца.

struct Auto

{int nomer; //номер автомобиля

char marka[20]; //марка автомобиля

char fio[40]; //фамилия владельца

char adres[60] //адрес владельца

};

Auto mers, volvo, alfa_r [5], *mazda,person_list [20]; // определение структурных переменных

mers.marka –доступ к полю «марка» автомобиля mers

mers – вся информация о владельце автомобиля mers

volvo.fio[0] –первая буква фамилии владельца автомобиля volvo

alfa_r [1].adres[0] – первый символ адреса второго элемента массива владельцев alfa_r

person_list – информация о всех владельцах автомобилей (массив из двадцати наборов данных);

person_list[i] – информация о владельце (i+1) –го автомобиля (i –ый элемент в наборе данных);

person_list[i].fio – фамилия владельца (i+1) –го автомобиля;

person_list[i].fio[j] –j-ая буква в фамилии владельца (i+1) –го автомобиля

Расположение массива структур в памяти:

person_list
1-ый владелец: person_ list [0] 2-ой владелец: person_list [1] i-ый владелец: person_list [i-1] ... 20-ый владелец: person_list [19]
nomer(4 байта) marka(20 байт) fio(40 байт) adres(60 байт) nomer marka Adres Adre s adres nomer marka fio О adres ОООООООО ОООООООО ОOОООООО ОООООООО ОООООООО

person_list [1]. fio person_list [i-1].fio[j]

Массив структурных переменных можно описать и следующим образом:

struct { char name[20];

char title[44];

int year;

float price;

} books[25];

Тогда к полю year в i-ом элементе массива структур books можно обратиться следующим образом:

books[i].year =2007;

(*(books+i)).year =2007;

(books+i)->year =2007;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: