- Задаем шаблон структуры.
- Объявляем массив.
Пример:
struct student studcourse[200];
Доступ к полю name 101- го элемента массива: studcourse[100].name
studcourse[100].name[7] – 8 - й элемент (буква) поля name 101-го элемента массива studcourse.
Если объявлены две переменные типа структуры с одним и тем же шаблоном, то можно использовать операцию присваивания:
stud1=stud2;
Замечание: нельзя использовать операцию присваивания переменных типа структуры, шаблоны которых описаны под разными именами.
Пример:
second=first; // неправильно
second.a=first.a; // правильно
Можно создать указатель на структуру:
struct student *pStru; // pStru – переменная типа указатель на структуру student
Операция стрелка (->) употребляется вместо операции точка (.), когда хотят получить значение элемента структуры с применением переменной типа указатель.
Пример: /* комплексные числа */
struct complex { float x;
float y;
} z;
struct complex *p; // объявление указателя
p=&z;
(*p).x=1;
p->y=2;
printf(“Re z=%f\tIm z=%f\n”,z.x,z.y);
В качестве элементов структуры можно использовать массивы, структуры и массивы структур.
Пример: /* использование в качестве элемента структуры другой структуры */
struct address{
char city[30];
char street[30];
int house;
};
struct fulladdress{
struct address addr; //
int room;
char name[30];
}AddrStud;
…
AddrStud.addr.house=15; // присвоение значения house структуры address переменной AddrStud
Пример:
struct date{
int day;
int month;
int year;
};
struct student{
char name[20];
char surname[20];
struct date birthday;
int group;
int age;
};
struct student students[21];
…
students[4].group=119;
students[4].birthday.day=3;
students[4].birthday.month=8;
students[4].birthday.year=1988;