Программирование · 2 min read · Nov 18, 2025

Учебник по программированию на C для Linux Часть 23 - Структуры

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

Сегодня, в этом учебнике, мы обсудим одну из таких концепций - концепцию структур.

Структуры в языке программирования C

Вот как объявляется структура:

struct TAG {  
*объявление переменной*  
*объявление переменной*  
*...*  
*...*  
*...*  
};

TAG может быть любым именем, которое вы хотите дать этой структуре, например, emp_details.

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

Представьте случай, когда код, который вы пишете, связан с ведением учета данных сотрудников в компании. Каждый раз, когда новый сотрудник присоединяется, ваша программа получает имя, возраст, должность и отдел сотрудника. Таким образом, в этом случае идеально, чтобы код был написан таким образом, чтобы вся эта информация, относящаяся к сотруднику, рассматривалась как единое целое.

Таким образом, один из способов написать код таким образом - создать структуру, которая группирует всю эту информацию, связанную с сотрудником. Все, что вам нужно сделать, это создать экземпляр структуры (или переменную этого типа структуры) и заполнить все данные, относящиеся к новому сотруднику.

Следующие несколько способов, с помощью которых вы можете создать переменные типа структуры (a, b и c в этом случае):

struct emp_details {  
*объявление переменной*  
*объявление переменной*  
*...*  
*...*  
*...*  
}a, b, c;
struct emp_details a;  
struct emp_details b;  
struct emp_details c;

Хватит теории, давайте возьмем простой пример. Предположим, ваша команда состоит из 2 участников, и вы хотите сохранить их данные на своем компьютере с помощью программы, которую вы хотите написать на C. Следующий фрагмент кода должен дать вам общее представление о том, как структуры могут быть полезны в этом случае:

#include   
  
struct emp_details {  
  
 int emp_code;  
 int emp_age;  
   
};  
  
int main()  
{  
   struct emp_details employee[2];  
   
   printf("\n введите код и возраст первого участника\n");  
   scanf("%d", &employee[0].emp_code);  
   scanf("%d", &employee[0].emp_age);  
   
   printf("\n введите код и возраст второго участника\n");  
   scanf("%d", &employee[1].emp_code);  
   scanf("%d", &employee[1].emp_age);  
   
   for(int i=0; i<2; i++)  
   {  
      printf("\n Код и возраст участника %d: %d и %d \n", i+1, employee[i].emp_code, employee[i].emp_age);  
   }  
  
 return 0;  
}

Итак, в этом коде мы сначала объявили структуру с именем ‘emp_details’ с ‘emp_code’ и ‘emp_age’ в качестве двух ее переменных-членов. Затем в функции ‘main’ мы определили два объекта этой структуры в виде массива. Далее мы заполнили переменные-члены, соответствующие этим объектам, принимая ввод от пользователя. И, наконец, программа выводит эти значения обратно пользователю.

Вот вывод, когда мы выполнили программу на нашем компьютере:

введите код и возраст первого участника   
105   
27   
   
введите код и возраст второго участника   
110   
32   
   
 Код и возраст участника 1: 105 и 27   
   
 Код и возраст участника 2: 110 и 32

Переменные, которые являются частью структуры, могут быть любого типа. Вы даже можете иметь объекты/экземпляры другой структуры в своей структуре. Все это и многое другое в нашем следующем учебнике по структурам, так что оставайтесь с нами.

Заключение

Этот учебник сосредоточился на основах структур в языке программирования C. Мы узнали, как объявить структуру, затем определить объект или экземпляр для нее и, наконец, как получить доступ к переменным структуры. В наших предстоящих учебниках мы углубимся немного больше и узнаем больше о структурах.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.