Pole struktur v C
Při práci s velkým souborem souvisejících dat a různých typů dat je zásadní jejich efektivní organizace a správa. V programování C poskytuje kombinace polí a struktur, tj. pole struktur, výkonný nástroj pro jejich správu. V tomto článku diskutujeme o konceptu Array of Structures v C.
Co je Array?
Pole je homogenní sbírka prvků uložených v místě souvislé paměti. Velikost pole je pevná a k prvkům můžeme přistupovat náhodně pomocí jejich indexu.
Declaration of Array
array_type array_name [size];
Co je Struktura?
Struktura je jedním z uživatelsky definovaných datových typů v C, který může jako své členy obsahovat prvky různých typů.
Deklarace struktury v C
struct structure_name{ memberType memberName; ... ... }; Pole struktur
Pole, jehož prvky jsou typu struktura, se nazývá pole struktury. Obecně je užitečné, když v našem programu potřebujeme více proměnných struktury.
Need for Array of Structures
Předpokládejme, že máme 50 zaměstnanců a potřebujeme uložit data 50 zaměstnanců. K tomu potřebujeme definovat 50 proměnných typu struct Employee a do nich uložit data. Nicméně deklarace a manipulace s 50 proměnnými není snadný úkol. Představme si větší scénář, například 1000 zaměstnanců.
Pokud tedy proměnnou deklarujeme tímto způsobem, není možné s tím zacházet.
struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;
K tomu můžeme definovat pole, jehož datový typ bude struct Employee, takže bude snadno ovladatelný.
Declaration of Array of Structures
struct structure_name array_name [number_of_elements];
Inicializace Array of Structures
Pole struktur můžeme inicializovat následujícími způsoby:
struct structure_name array_name [number_of_elements] = { {element1_value1, element1_value2, ....}, {element2_value1, element2_value2, ....}, ...... ...... }; Stejnou inicializaci lze také provést jako:
struct structure_name array_name [number_of_elements] = { element1_value1, element1_value2 ...., element2_value1, element2_value2 ..... }; Kompilátory GNU C podporují určenou inicializaci pro struktury, takže ji můžeme použít také při inicializaci pole struktur.
struct structure_name array_name [number_of_elements] = { {.element3 = value, .element1 = value, ....}, {.element2 = value, .elementN = value, ....}, ...... ...... }; Příklad Array of Structure 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ýstup
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