Массивы структур. Если переменных типа структура много, то определяется массив структур

Если переменных типа структура много, то определяется массив структур.

void main(void){

struct book libry[100];

int i;

for(i=0; i<100; i++){

puts("Введите название книги");

gets(libry[i].title);

puts("Введите автора книги");

gets(libry[i], author);

puts("Введите цену книги");

scanf("%f",&libry[i].value);

}

}

Индекс применяется к имени массива структур libry[i].

Если libry[2].title[3] – это 4-й элемент в title в 3-й структуре типа book.

Вложенные структуры

Если одна структура содержится или "вложена" в другую, то говорят, что это вложенные структуры.

struct names{ char name[20];

char fio[20];};

struct worker{ struct names people;

char job[20];

float money;};

void main(void){

struct worker driver = {{"Иван", "Иванов"},

"водитель", 1234.1};

Для обращения к элементу вложенной структуры применяется две операции «точка».

puts(driver.people.name);

Указатели на структуры

Указателями на структуры легче пользоваться, чем самими структурами. Структура не может передаваться в качестве аргумента функции, а указатель на структуру может.

struct worker *pdrv;

pdrv = &driver;

struct worker driver[2]; //массив структур

а) pdrv = driver; // pdrv <=> &driver[0];

pdrv+1 <=> &driver[1].

Доступ к элементу структуры осуществляется через операцию ->.

pdrv->job -> driver[0].job ->(*prdv).job

б) pdrv->people.name

Операции над структурами

1) Операция получения элемента.

driver.money=1234;

2) Операция косвенного получения элемента.

pdrv->money=3456;


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



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