Довольно часто структуры используются именно в виде массивов структур. Для объявления такого массива следует сначала определить саму структуру, а затем объявить массив переменных данного типа. Например, для объявления массива структур типа MyType следует написать:
const int Nmax = 10;
// объявление структуры
struct MyType {
float A;
double B;
int C[2];
};
// объявление массива структур
MyType Mas[Nmax];
В результате получаем массив структур из 10 элементов, каждый из которых имеет тот же вид, что и переменная V в предыдущих примерах:
Для доступа к отдельным элементам массива структур используется операция индексации как и для массивов стандартных типов данных. Она имеет следующий синтаксис:
ИмяМассиваСтруктур [номер элемента]. ИмяПоля
Ниже приведён блок ввода массива структур с клавиатуры с выводом на экран подсказки для каждого поля:
for(int i = 0; i < Nmax; i++)
{
printf (" A = ");
scanf ("%f", &Mas[i].A);
printf (" B = ");
scanf ("%lf", &Mas[i].B);
for(int j =; j < 2; j++)
{
printf (" C[%d] = ", i+1);
scanf ("%d", &Mas[i].C[j]);
}
}
Выражение Mas[i].C[j] означает обращение к j-му элементу массива C, который является полем структурной переменной Mas[i].
Как и массивы стандартных типов, массивы структур индексируются с нуля.