Struktūrų masyvas vs masyvas struktūroje C
Abu Struktūrų masyvas ir Masyvas struktūroje C programavimas yra masyvų ir struktūrų derinys, tačiau abu naudojami skirtingiems tikslams.
Masyvas struktūroje
Struktūra yra duomenų tipas C kuri leidžia susijusių kintamųjų grupę traktuoti kaip vieną vienetą, o ne kaip atskirus objektus. Struktūroje gali būti skirtingų duomenų tipų elementų – int, char, float, double ir tt Jos narys taip pat gali turėti masyvą. Toks masyvas vadinamas masyvu struktūroje. Masyvas struktūroje yra struktūros narys ir gali būti pasiekiamas lygiai taip pat, kaip ir kiti struktūros elementai.
Toliau pateikiamas programos, kuri naudoja masyvo sąvoką struktūroje, demonstravimas. Programa rodo studento įrašą, kurį sudaro ritinio numeris , laipsnis , ir ženklų saugomi įvairiuose dalykuose. Įvairių dalykų ženklai buvo saugomi masyve, vadinamame ženklų . Visas įrašas saugomas struktūroje, vadinamoje a kandidatas .
Pavyzdys
Žemiau pateikta programa parodo masyvo naudojimą struktūroje.
C
// C program to demonstrate the> // use of an array within a structure> #include> // Declaration of the structure candidate> struct> candidate {> > int> roll_no;> > char> grade;> > // Array within the structure> > float> marks[4];> };> // Function to displays the content of> // the structure variables> void> display(> struct> candidate a1)> {> > printf> (> 'Roll number : %d
'> , a1.roll_no);> > printf> (> 'Grade : %c
'> , a1.grade);> > printf> (> 'Marks secured:
'> );> > int> i;> > int> len => sizeof> (a1.marks) /> sizeof> (> float> );> > // Accessing the contents of the> > // array within the structure> > for> (i = 0; i printf('Subject %d : %.2f
', i + 1, a1.marks[i]); } } // Driver Code int main() { // Initialize a structure struct candidate A = { 1, 'A', { 98.5, 77, 89, 78.5 } }; // Function to display structure display(A); return 0; }> |
Išvestis
Roll number : 1 Grade : A Marks secured: Subject 1 : 98.50 Subject 2 : 77.00 Subject 3 : 89.00 Subject 4 : 78.50
Struktūrų masyvas
Masyvas yra to paties tipo duomenų elementų rinkinys. Kiekvienas masyvo elementas gali būti int, char, float, double ar net struktūra. Matėme, kad struktūra leidžia skirtingų duomenų tipų elementus sugrupuoti vienu pavadinimu. Tada ši struktūra gali būti laikoma nauju duomenų tipu. Taigi masyvą gali sudaryti šio naujo tipo duomenų elementai. Struktūrų masyvas randa savo pritaikymą grupuodamas įrašus ir suteikia greitą prieigą.
Žemiau pateikiamas įvairių struktūrų demonstravimas. Masyve yra išsami informacija apie klasės mokinius. Išsami informacija apima ritinio numeris, klasė , ir ženklai , kurios buvo sugrupuotos pagal struktūrą (įrašą). Kiekvienam mokiniui yra vienas įrašas. Taip susijusių kintamųjų rinkinys gali būti sujungtas į vieną objektą, siekiant pagerinti kodo aiškumą ir padidinti jo efektyvumą.
Pavyzdys
Žemiau pateikta programa demonstruoja įvairių struktūrų naudojimą.
C
// C program to demonstrate the> // usage of an array of structures> #include> // Declaring a structure class> struct> class> {> > int> roll_no;> > char> grade;> > float> marks;> };> // Function to displays the contents> // of the array of structures> void> display(> struct> class> class_record[3])> {> > int> i, len = 3;> > // Display the contents of the array> > // of structures here, each element> > // of the array is a structure of class> > for> (i = 0; i printf('Roll number : %d
', class_record[i].roll_no); printf('Grade : %c
', class_record[i].grade); printf('Average marks : %.2f
', class_record[i].marks); printf('
'); } } // Driver Code int main() { // Initialize of an array of structures struct class class_record[3] = { { 1, 'A', 89.5f }, { 2, 'C', 67.5f }, { 3, 'B', 70.5f } }; // Function Call to display // the class_record display(class_record); return 0; }> |
Išvestis
Roll number : 1 Grade : A Average marks : 89.50 Roll number : 2 Grade : C Average marks : 67.50 Roll number : 3 Grade : B Average marks : 70.50
Skirtumas tarp struktūrų masyvo ir masyvo struktūrų viduje
Žemiau pateikiamas lentelės skirtumas tarp masyvo struktūroje ir struktūrų masyvo:
| Parametras | Masyvas struktūroje | Struktūrų masyvas |
|---|---|---|
| Pagrindinė idėja | Struktūroje yra masyvas kaip jos nario kintamasis. | Masyvas, kuriame kiekvienas elementas yra tipo struktūros. |
| Sintaksė | struct class { int ar[10]; } a1, a2, a3; | struct class { int a, b, c; } studentai[10]; |
| Prieiga | Galima pasiekti naudojant taško operatorių, kaip ir kitus struktūros elementus. | Galima pasiekti indeksuojant lygiai taip pat, kaip pasiekiame masyvą. |
| Prieigos elementų sintaksė | struktūra.masyvas[indeksas] | masyvas[indeksas].narys |
| Atminties struktūra | Masyvas struktūroje bus saugomas nuoseklioje atmintyje, o struktūros užpildymas nepriklauso nuo masyvo dydžio. | Tarp struktūros elementų bus tuščios vietos dėl struktūros užpildymo. |