C: Структуры

Структура (struct) является хранилищем данных различных типов. Обычно структуры используются для совместного хранения нескольких переменных, относящихся к одному объекту или механизму. Переменные, описанные в рамках структуры, называются ее полями. В качестве примера можно рассмотреть структуру с параметрами книги, которая будет содержать название книги, имя ее автора, и количество страниц.

Структуры описываются следующим образом:

struct books
{
    char *title;
    char *author;
    int pages;
} book;

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

struct books book1;

book1.title = "To Kill a Mockingbird";
book1.author = "Harper Lee";
book1.pages = 433;

Очевидно, что для доступа к полям структуры используются символы точек (.). В том случае, если имеется указатель на структуру, вместо символов точек должна использоваться последовательность символов (->).

Пример

Создание двух структур и работа с их полями.

  1. #include <stdio.h>
  2.  
  3. struct employees
  4. {
  5.     char *name;
  6.     char *address;
  7.     char *postcode;
  8. } employee;
  9.  
  10. int main()
  11. {
  12.     struct employees andrew;
  13.     struct employees george;
  14.  
  15.     andrew.name = &quot;Andrew Steele&quot;;
  16.     andrew.address = &quot;157 Long Lane&quot;;
  17.     andrew.postcode = &quot;MT4 9FD&quot;;
  18.  
  19.     george.name = &quot;George Tomkinson&quot;;
  20.     george.address = &quot;63 Fir Avenue&quot;;
  21.     george.postcode = &quot;FF4 12JH&quot;;
  22.  
  23.     printf(&quot;%s\n&quot;, andrew.name);
  24.     printf(&quot;%s\n&quot;, george.address);
  25.  
  26.     return 0;
  27. }

Загрузить файл исходного кода