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.
řetězec do data
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
javabilní
// 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;> }> |
>
groovy jazyk
>
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>