Warning: session_start(): open(C:\Windows\temp\sess_dkdm89l7lq8s9ocukchln1koa2, O_RDWR) failed: No space left on device (28) in C:\www\lemma4.1php\login.php on line 15 Warning: session_commit(): open(C:\Windows\temp\sess_dkdm89l7lq8s9ocukchln1koa2, O_RDWR) failed: No space left on device (28) in C:\www\lemma4.1php\login.php on line 36 Warning: session_commit(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\Windows\temp) in C:\www\lemma4.1php\login.php on line 36 Основы языка Си


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


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


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


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. Напомним, что для массивов подобная операция делается с помощью явного перебора элементов.


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