logo

Matriu d'estructures en C

Quan es tracta d'un gran conjunt de dades relacionades i de diferents tipus de dades, és fonamental organitzar-lo i gestionar-lo de manera eficient. A la programació en C, la combinació de matrius i estructures, és a dir, la matriu d'estructures, proporciona una eina poderosa per gestionar-ho. En aquest article, discutim el concepte d'una matriu d'estructures en C.

java llarg a int

Què és Array?

La matriu és una col·lecció homogènia d'elements emmagatzemats a la ubicació de memòria contínua. La mida de la matriu és fixa i podem accedir aleatòriament als elements mitjançant el seu índex.



Declaració de matriu

array_type   array_name  [size];>

Què és l'Estructura?

L'estructura és un dels tipus de dades definits per l'usuari en C que pot contenir elements de diferents tipus com a membres.

Declaració d'una estructura en C



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

Matriu d'estructures

Una matriu els elements de la qual són d'estructura de tipus s'anomena matriu d'estructura. En general, és útil quan necessitem múltiples variables d'estructura al nostre programa.

Necessitat de matriu d'estructures

Suposem que tenim 50 empleats i hem d'emmagatzemar les dades de 50 empleats. Per això, hem de definir 50 variables de tipus struct Employee i emmagatzemar-hi les dades. Tanmateix, declarar i manejar les 50 variables no és una tasca fàcil. Imaginem un escenari més gran, com ara 1000 empleats.

Per tant, si declarem la variable d'aquesta manera, no és possible gestionar-ho.



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

Per això, podem definir una matriu el tipus de dades de la qual serà struct Employee soo que serà fàcilment manejable.

Declaració de matriu d'estructures

  struct     structure_name array_name   [number_of_elements];>

Inicialització de la matriu d'estructures

Podem inicialitzar la matriu d'estructures de les maneres següents:

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

La mateixa inicialització també es pot fer com:

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

Els compiladors GNU C admeten la inicialització designada per a estructures, de manera que també podem utilitzar-la en la inicialització d'una matriu d'estructures.

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

Exemple de matriu d'estructura en C

C

powershell major o igual




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

>

string concat java
>

Sortida

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>