logo

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.

ř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>