Atunci când aveți de-a face cu un set mare de date asociate și diferite tipuri de date, organizarea și gestionarea eficientă a acestuia este crucială. În programarea C, combinația de matrice și structuri, adică matrice de structuri, oferă un instrument puternic pentru gestionarea acesteia. În acest articol, discutăm conceptul de o matrice de structuri în C.
selectați SQL din mai multe tabele
Ce este Array?
Matricea este o colecție omogenă de elemente stocate în locația de memorie continuă. Mărimea matricei este fixă și putem accesa aleatoriu elementele folosind indexul lor.
Declarație de matrice
array_type array_name [size];>
Ce este Structura?
Structura este unul dintre tipurile de date definite de utilizator în C, care poate conține elemente de diferite tipuri ca membri.
Declarația unei structuri în C
struct structure_name{ memberType memberName; ... ... };>
Matrice de structuri
O matrice ale cărei elemente sunt de tip structură se numește matrice de structură. În general, este util atunci când avem nevoie de mai multe variabile de structură în programul nostru.
Nevoia de matrice de structuri
Să presupunem că avem 50 de angajați și trebuie să stocăm datele a 50 de angajați. Deci, pentru asta, trebuie să definim 50 de variabile de tip struct Employee și să stocăm datele în acesta. Cu toate acestea, declararea și manipularea celor 50 de variabile nu este o sarcină ușoară. Să ne imaginăm un scenariu mai mare, cum ar fi 1000 de angajați.
Deci, dacă declarăm variabila în acest fel, nu este posibil să o gestionăm.
struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;>
Pentru asta, putem defini o matrice al cărei tip de date va fi struct Employee, astfel încât să fie ușor de gestionat.
Declarație de matrice de structuri
struct structure_name array_name [number_of_elements];>
Inițializarea matricei de structuri
Putem inițializa matricea de structuri în următoarele moduri:
struct structure_name array_name [number_of_elements] = { {element1_value1, element1_value2, ....}, {element2_value1, element2_value2, ....}, ...... ...... };>
Aceeași inițializare se poate face și ca:
format șir java
struct structure_name array_name [number_of_elements] = { element1_value1, element1_value2 ...., element2_value1, element2_value2 ..... };>
Compilatoarele GNU C acceptă inițializarea desemnată pentru structuri, astfel încât să putem folosi aceasta și în inițializarea unei matrice de structuri.
struct structure_name array_name [number_of_elements] = { {.element3 = value, .element1 = value, ....}, {.element2 = value, .elementN = value, ....}, ...... ...... };>
Exemplu de matrice de structură în 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;> }> |
Actorul Rekha
>
>
Ieșire
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>