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 = "Andrew Steele";
  16.     andrew.address = "157 Long Lane";
  17.     andrew.postcode = "MT4 9FD";
  18.  
  19.     george.name = "George Tomkinson";
  20.     george.address = "63 Fir Avenue";
  21.     george.postcode = "FF4 12JH";
  22.  
  23.     printf("%s\n", andrew.name);
  24.     printf("%s\n", george.address);
  25.  
  26.     return 0;
  27. }

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