Tablica struktur w C

W przypadku dużego zbioru powiązanych danych i różnych typów danych kluczowe znaczenie ma efektywne ich organizowanie i zarządzanie nimi. W programowaniu C kombinacja tablic i struktur, tj. tablica struktur, zapewnia potężne narzędzie do zarządzania tym. W tym artykule omawiamy koncepcję tablicy struktur w języku C.

Co to jest tablica?

Tablica jest jednorodnym zbiorem elementów przechowywanych w lokalizacji pamięci ciągłej. Rozmiar tablicy jest stały i możemy losowo uzyskać dostęp do elementów za pomocą ich indeksu.

Deklaracja tablicy

array_type   array_name  [size]; 

Co to jest struktura?

Struktura jest jednym z typów danych zdefiniowanych przez użytkownika w C, który może zawierać elementy różnych typów jako swoje elementy.

Deklaracja struktury w C

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

Tablica struktur

Tablicę, której elementy mają strukturę typu, nazywa się tablicą struktury. Jest to ogólnie przydatne, gdy potrzebujemy wielu zmiennych strukturalnych w naszym programie.

Potrzeba tablicy struktur

Załóżmy, że mamy 50 pracowników i musimy przechowywać dane 50 pracowników. W tym celu musimy zdefiniować 50 zmiennych typu struct Employee i przechowywać w nich dane. Jednak deklarowanie i obsługa 50 zmiennych nie jest łatwym zadaniem. Wyobraźmy sobie większy scenariusz, na przykład 1000 pracowników.

Jeśli więc zadeklarujemy zmienną w ten sposób, nie będzie można sobie z tym poradzić.

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

W tym celu możemy zdefiniować tablicę, której typem danych będzie struct Employee, dzięki czemu będzie łatwo zarządzać.

Deklaracja układu struktur

  struct     structure_name array_name   [number_of_elements]; 

Inicjalizacja tablicy struktur

Tablicę struktur możemy zainicjować w następujący sposób:

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

Tę samą inicjalizację można również wykonać w następujący sposób:

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

Kompilatory GNU C obsługują wyznaczoną inicjalizację struktur, więc możemy jej również użyć do inicjalizacji tablicy struktur.

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

Przykład tablicy struktury w C

C




// 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;> }>

Wyjście

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