ВУЗ:
Составители:
Рубрика:
struct имя_структурного_типа имя_1;
Каждая создаваемая структурная переменная содержит свои собственные данные, а их состав опре-
деляется структурным типом. Для доступа к элементам конкретной структуры используется уточненное
имя, которое в общем виде выглядит следующим образом:
имя_структуры.имя_элемента;
При определении структуры возможна ее инициализация:
struct
{
double re, im;
} complex = {0.2, 3.1};
Имя структурного типа обладает всеми свойствами имен типов данных, поэтому можно определить
указатель на структуру:
struct имя_структурного_типа *имя_указателя;
Значением указателя на структуру станет номер байта, с которого начинается размещение структу-
ры в памяти.
Обратиться к полям структуры, используя имя указателя на нее, можно двумя способами:
1) (*имя_указателя).поле;
2) имя_указателя->поле.
Для полей структур существует только одно ограничение: поле структуры не может иметь тот же
тип, что и тип самой структуры.
struct А {struct А a; int i;}; // Это запрещено
Однако допускается использование указателя на этот тип:
struct А {struct А *a; int i;};
Возможно использование перекрестных указателей структур друг на друга:
struct A; // Неполное определение структурного типа
struct B {struct A *Pa;};
struct A {struct B *Pb;};
11.3 Объединения
Объединения в языке С очень похожи на структуры. Главным их отличием является то, что все поля
объединения начинаются с одного адреса, а общая его длина равна длине в байтах наибольшего поля.
Определение объединения выглядит следующим образом:
union имя_типа_объединения
{
тип1 поле1;
тип2 поле2;
…
типn полеn;
Страницы
- « первая
- ‹ предыдущая
- …
- 25
- 26
- 27
- 28
- 29
- …
- следующая ›
- последняя »
