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