Массивы структурных переменных

Такие массивы описываются по заданному шаблону как обычный массив структур или массив указателей на структуры:

struct student { char name [30]; float sb;

} group [20], /* массив структур */

*pgroup [20], /* массив указателей на структуры */

*pgr=group; /* указатель на массив group */

Доступ к элементам массива может выполняться либо с использованием индекса, либо через указатель-константу (имя массива), либо через указатель-переменную, инициализированную адресом первого элемента массива (именем массива):

group[i].sb=0; /* доступ с использованием индексного выражения */

(*(group+i)).sb=0; /* доступ с использованием адресного выражения */

(group+i)->sb=0; /* использование указателя-константы */

(pgr+i)->sb=0; /* использование указателя-переменной */

pgroup [i] = group+i; /* запись адреса структуры в массив указателей */

Продвижение указателя операцией ++ или – – (например, pgr++; pgr– –;) увеличивает или уменьшает его на размер структуры, например, sizeof (struct student), то есть устанавливает на следующий или предыдущий элемент массива. Это удобно при последовательном доступе к элементам массива в цикле.


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



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