Пусть задана структура


Ассоциативная связь


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


struct student s1,s2,s3;


Мы описали три переменных, в каждой из которых будут агрегированы интересующие нас данные о студентах. Для доступа к этим данным используется операция «.». Например, задать элементы переменной s1 можно следующим образом:


s1.sex=’m’;

s1. mark=4.7;


Если определен указатель на структуру, доступ к элементам этой структуры может осуществляться двумя равноправными способами:


struct student *ps;


(*ps).age = 18; или ps->age = 18;


Структурную переменную можно проинициализировать в момент описания.


struct student s1 = {“Ivanov”,”Petr”,’m’,18,182.5, 77.3, 4,7};


Инициализацию указателя на структуру наиболее корректно производить с помощью адреса структурной переменной того же типа:


struct student s1, *s2=&s1, *s3;


Значение указателя на структуру может быть определено и с помощью обычного присваивания:


s3 = &s1;


В отличие от массивов, одну структуру можно присвоить другой.


s2=s1;


При этом элементы структуры s2 получат значения соответствующих элементов структуры s1. Напомним, что для массивов подобная операция делается с помощью явного перебора элементов.


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