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

  1. Задаем шаблон структуры.
  2. Объявляем массив.

Пример:

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;


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



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