Поиск по сайту:

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


На этой странице

  1. Структуры на языке программирования C
  2. Заключение

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

Сегодня в этом уроке мы обсудим одно такое понятие — понятие структур.

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

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

struct TAG {
variable declaration
variable declaration
...
...
...
};

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

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

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

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

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

struct emp_details {
variable declaration
variable declaration
...
...
...
}a, b, c;
struct emp_details a;
struct emp_details b;
struct emp_details c;

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

#include <stdio.h>

struct emp_details {

int emp_code;
int emp_age;

};

int main()
{
struct emp_details employee[2];

printf("\n enter code and age of first member\n");
scanf("%d", &employee[0].emp_code);
scanf("%d", &employee[0].emp_age);

printf("\n enter code and age of second member\n");
scanf("%d", &employee[1].emp_code);
scanf("%d", &employee[1].emp_age);

for(int i=0; i<2; i++)
{
printf("\n Code and age of member %d is: %d and %d \n", i+1, employee[i].emp_code, employee[i].emp_age);
}

return 0;
}

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

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

enter code and age of first member 
105
27

enter code and age of second member
110
32

Code and age of member 1 is: 105 and 27

Code and age of member 2 is: 110 and 32

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

Заключение

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