Структуры. Объявление структур

   
На этом шаге мы рассмотрим различные способы задания структур.

   
Структуры - это такие конструкции языка С, которые объединяют в данные разных типов, в т. ч. и подструктуры (такие же структуры, но являющиеся членами главной структуры).
Эти конструкции полезны тем, что во многих ситуациях позволяют группировать связанные данные таким образом, что с ними можно работать как с единым целым. Как объявляется структура
покажем на примере объявления данных некоторого человека:

struct man
{
  char name[80];  //имя 
  char phone_number[80];  //телефон 
  int age;  //возраст 
  int height; //рост
};

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

  • по шаблону man:
      struct man friends[100],others;
    

       
    Здесь созданы два экземпляра структуры: один - это массив структур (каждый элемент такого массива представляет собой структуру шаблон man. Можно сказать так: friends - это
    переменная типа man), другой - обычный экземпляр по шаблону man. В языке C++ ключевое слово struct можно опускать;

  • при объявлении шаблона:
    struct man
    {
      char name[80];
      char phone_number[80];
      int age; 
      int height; 
    }others;
    

       
    Здесь создан один экземпляр структуры - others;

  • с помощью квалификатора типа typedef, который изменяет имя шаблона и позволяет воспользоваться новым именем в качестве типа данных:
    typedef struct
    {
      char name[80];
      char phone_number[80];
      int age;
      int height; } NewTemp1;
    

       
    Теперь можно писать: NewTemp1 d1, d2[20], *p; (все эти переменные - типа NewTemp1). Здесь объявлено три переменных типа NewTemp1: экземпляр d1 структуры
    шаблона man, массив структур d2[20] и р - указатель на структуру.

   Примечание.
При объявлении шаблона структуры члены-данные структуры объявляются такого же формата, как если бы они были вне структуры: тип, имя, точка с запятой.

   
Приведем пример вложенной структуры, т. е. такой структуры, которая является членом другой структуры:

struct date {
  int day;  //день недели 
  int month;   //номер месяца 
  int year;   //год
  char monthname[4];   //название месяца
}; 
struct person {
  char name[30];     //имя
  char adress[70];   //домашний адрес
  long mailcod;   //почтовый код
  float salary;     //заработная плата
  date birthdate;   //дата рождения
  date hiredate;   //дата поступления на работу
}emp[1000],*р;

   
Это типичный пример объявления личной карточки работника (реальная карточка содержит намного больше данных). Здесь объявлен указатель на структуру и массив структур шаблона person.
Если такой массив заполнить получим данные на 1000 работников.

   Примечание.
Указатель на структуру - это не экземпляр структуры (экземпляр структуры объявляется как emp[]), а указатель, которому в дальнейшем будen присвоен адрес некоторой структуры, с ее
элементами можно будет работать через указатель.

   
На следующем шаге мы рассмотрим обращение к элементам структур.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий