logo

Pole štruktúr v C

Pri práci s veľkým súborom súvisiacich údajov a rôznych typov údajov je rozhodujúca ich efektívna organizácia a správa. V programovaní C poskytuje kombinácia polí a štruktúr, t. j. pole štruktúr, výkonný nástroj na ich správu. V tomto článku diskutujeme o koncepte Array of Structures v C.

reťazec do dátumu

Čo je Array?

Pole je homogénna kolekcia prvkov uložených v mieste spojitej pamäte. Veľkosť poľa je pevná a k prvkom môžeme pristupovať náhodne pomocou ich indexu.

Vyhlásenie Array



array_type   array_name  [size];>

Čo je Štruktúra?

Štruktúra je jedným z užívateľom definovaných dátových typov v C, ktorý môže obsahovať prvky rôznych typov ako svoje členy.

Vyhlásenie o štruktúre v C

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

Pole štruktúr

Pole, ktorého prvky sú typu štruktúra, sa nazýva pole štruktúry. Vo všeobecnosti je užitočný, keď v našom programe potrebujeme viacero štruktúrnych premenných.

Need for Array of Structures

Predpokladajme, že máme 50 zamestnancov a potrebujeme uložiť údaje 50 zamestnancov. Na to potrebujeme definovať 50 premenných typu struct Employee a do nich uložiť dáta. Deklarovanie a manipulácia s 50 premennými však nie je ľahká úloha. Predstavme si väčší scenár, napríklad 1000 zamestnancov.

Ak teda premennú deklarujeme týmto spôsobom, nie je možné to zvládnuť.

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

Na to môžeme definovať pole, ktorého dátový typ bude struct Employee, takže bude ľahko spravovateľný.

Declaration of Array of Structures

  struct     structure_name array_name   [number_of_elements];>

Inicializácia poľa štruktúr

Pole štruktúr môžeme inicializovať nasledujúcimi spôsobmi:

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

Rovnakú inicializáciu je možné vykonať aj takto:

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

Kompilátory GNU C podporujú určenú inicializáciu pre štruktúry, takže ju môžeme použiť aj pri inicializácii poľa štruktúr.

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

Príklad poľa štruktúry v C

C

vypnutie režimu vývojára




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

>

rozloženie mriežky
>

Výkon

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>