Struktūrų masyvas C
Kai dirbate su dideliu susijusių duomenų rinkiniu ir skirtingais duomenų tipais, labai svarbu juos efektyviai tvarkyti ir valdyti. C programavimo metu masyvų ir struktūrų derinys, ty struktūrų masyvas, yra galingas įrankis tai valdyti. Šiame straipsnyje aptariame struktūrų masyvo koncepciją C.
Kas yra Array?
Masyvas yra vienalytis elementų, saugomų nuolatinėje atminties vietoje, rinkinys. Masyvo dydis yra fiksuotas ir mes galime atsitiktinai pasiekti elementus naudodami jų indeksą.
Masyvo deklaracija
array_type array_name [size];
Kas yra Struktūra?
Struktūra yra vienas iš vartotojo nustatytų duomenų tipų C, kurio nariai gali turėti skirtingų tipų elementus.
Konstrukcijos deklaracija C
struct structure_name{ memberType memberName; ... ... }; Struktūrų masyvas
Masyvas, kurio elementai yra tipo struktūros, vadinamas struktūros masyvu. Paprastai tai naudinga, kai mūsų programoje reikia kelių struktūros kintamųjų.
Reikia konstrukcijų masyvo
Tarkime, kad turime 50 darbuotojų ir turime saugoti 50 darbuotojų duomenis. Norėdami tai padaryti, turime apibrėžti 50 darbuotojų tipo struktūros kintamųjų ir juose saugoti duomenis. Tačiau deklaruoti ir tvarkyti 50 kintamųjų nėra lengva užduotis. Įsivaizduokime didesnį scenarijų, pavyzdžiui, 1000 darbuotojų.
Taigi, jei deklaruosime kintamąjį tokiu būdu, tai neįmanoma.
struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;
Tam galime apibrėžti masyvą, kurio duomenų tipas bus struct Employee soo, kuris bus lengvai valdomas.
Konstrukcijų masyvo deklaracija
struct structure_name array_name [number_of_elements];
Struktūrų masyvo inicijavimas
Mes galime inicijuoti struktūrų masyvą šiais būdais:
struct structure_name array_name [number_of_elements] = { {element1_value1, element1_value2, ....}, {element2_value1, element2_value2, ....}, ...... ...... }; Tą patį inicijavimą taip pat galima atlikti taip:
struct structure_name array_name [number_of_elements] = { element1_value1, element1_value2 ...., element2_value1, element2_value2 ..... }; GNU C kompiliatoriai palaiko paskirtą struktūrų inicijavimą, todėl mes taip pat galime tai naudoti inicijuodami daugybę struktūrų.
struct structure_name array_name [number_of_elements] = { {.element3 = value, .element1 = value, ....}, {.element2 = value, .elementN = value, ....}, ...... ...... }; C struktūros masyvo pavyzdys
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;> }> |
Išvestis
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