Здавалка
Главная | Обратная связь

Особенности структур.



1. Описание структуры начинается со служебного слова struct, за которым может следовать необязательное имя, называемое именем типа структуры (здесь это date). Это имя типа структуры используется в дальнейшем для создания конкретного объекта.

2. За именем типа структуры идет заключенный в фигурные скобки список элементов структуры, с описанием типа каждого элемента (элементом структуры может быть переменная, массив или структура). Элементы структуры отделяются друг от друга точкой с запятой. Например:

struct date{ int day; int month; int year; int yearday; char mon_name[5];};

3. За правой фигурной скобкой, закрывающей список элементов, может следовать список объектов. Например, оператор struct date {...} x,y,z; определяет переменные x,y,z в качестве структур описанного типа и приводит к выделению памяти.

Изобразим распределение памяти для структуры x типа date:

4. Описание структуры, за которым не следует список объектов, не приводит к выделению памяти (как в программе выше); оно только определяет шаблон (форму) структуры. Однако, если такое описание снабжено именем типа (например, date), то это имя типа может быть использовано позднее при определении объектов структур (определение структур your_birthday и my_birthday в программе).

5. Структуру можно инициализировать, поместив вслед за ее определением список инициализаторов для ее компонент, заключенный в фигурные скобки. В программе таким образом инициализирована структура my_birthday.

date my_birthday={20,7,1981,1,"July"};

6. Обращение к определенному члену структуры производится с помощью конструкции вида:

<имя структуры>.<имя элемента>

7. Структуры могут вкладываться одна в другую, но самовложение структур запрещено!

Например, учетная карточка служащего может выглядеть так:

struct date{ int day; // День. char month[10]; // Месяц. int year; // Год.}; struct person{ char name[namesize]; // Имя, фамилия, отчество. char address[adrsize]; // Домашний адрес. int zipcode[2]; // Почтовый индекс. int s_number [2]; // Код соц.обеспечения. int salary[4]; // Зарплата. date birthdate; // Дата рождения. date hiredate; // Дата поступления на работу.};

Структура person содержит две структуры типа date и наша программа должна содержать шаблон для структуры date.

Если определить переменную Nick следующим образом:

struct person Nick;

то Nick.birthdate.month будет обозначать месяц рождения. Операция доступа к элементу структуры "." вычисляется слева направо.

А, теперь, рассмотрев основы, перейдем к тому, что же можно делать со структурами. Для этого открываем следующий раздел данного урока.

Предыдущая Оглавление Следующая  
Предыдущая Оглавление Следующая
           






©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.