logo

Масив структур у C

Коли ви маєте справу з великим набором пов’язаних даних і різними типами даних, ефективне впорядкування та керування ними має вирішальне значення. У програмуванні на C поєднання масивів і структур, тобто масив структур, забезпечує потужний інструмент для керування цим. У цій статті ми обговорюємо концепцію масиву структур у C.

nginx

Що таке масив?

Масив — це однорідна сукупність елементів, що зберігаються в безперервній області пам’яті. Розмір масиву фіксований, і ми можемо довільно отримувати доступ до елементів, використовуючи їхній індекс.



Оголошення масиву

array_type   array_name  [size];>

Що таке структура?

Структура — це один із визначених користувачем типів даних у C, який може містити елементи різних типів як члени.

Оголошення структури в C



  struct   structure_name{    memberType memberName;   ...  ... };>

Масив структур

Масив, елементи якого мають структуру типу, називається масивом структури. Зазвичай це корисно, коли нам потрібно кілька структурних змінних у нашій програмі.

Потреба в масиві структур

Припустимо, у нас 50 співробітників, і нам потрібно зберігати дані 50 співробітників. Отже, для цього нам потрібно визначити 50 змінних типу struct Employee і зберігати дані в них. Однак оголошення та обробка 50 змінних не є легким завданням. Уявімо ширший сценарій, наприклад, 1000 співробітників.

Отже, якщо ми оголосимо змінну таким чином, це неможливо впоратися.



struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;>

Для цього ми можемо визначити масив, тип даних якого буде struct Employee soo, яким буде легко керувати.

Оголошення масиву структур

  struct     structure_name array_name   [number_of_elements];>

Ініціалізація масиву структур

Ми можемо ініціалізувати масив структур наступними способами:

  struct     structure_name array_name   [number_of_elements] = {  {element1_value1, element1_value2, ....},  {element2_value1, element2_value2, ....},  ......  ...... };>

Таку саму ініціалізацію можна виконати так:

  struct     structure_name array_name   [number_of_elements] = {  element1_value1, element1_value2 ....,  element2_value1, element2_value2 ..... };>

Компілятори GNU C підтримують призначену ініціалізацію для структур, тому ми також можемо використовувати це для ініціалізації масиву структур.

  struct     structure_name array_name   [number_of_elements] = {  {.element3 = value, .element1 = value, ....},  {.element2 = value, .elementN = value, ....},  ......  ...... };>

Приклад масиву структури в C

C


що таке s у python



// C program to demonstrate the array of structures> #include> > // structure template> struct> Employee {> >char> Name[20];> >int> employeeID;> >int> WeekAttendence[7];> };> > // driver code> int> main()> {> >// defining array of structure of type Employee> >struct> Employee emp[5];> > >// adding data> >for> (>int> i = 0; i <5; i++) {> >emp[i].employeeID = i;> >strcpy>(emp[i].Name,>'Amit'>);> >int> week;> >for> (week = 0; week <7; week++) {> >int> attendence;> >emp[i].WeekAttendence[week] = week;> >}> >}> >printf>(>' '>);> > >// printing data> >for> (>int> i = 0; i <5; i++) {> >printf>(>'Emplyee ID: %d - Employee Name: %s '>,> >emp[i].employeeID, emp[i].Name);> >printf>(>'Attendence '>);> >int> week;> >for> (week = 0; week <7; week++) {> >printf>(>'%d '>, emp[i].WeekAttendence[week]);> >}> >printf>(>' '>);> >}> > >return> 0;> }>

життєвий цикл sdlc
>

>

Вихід

Emplyee ID: 0 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 1 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 2 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 3 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 4 - Employee Name: Amit Attendence 0 1 2 3 4 5 6>