Struktūru masīvs pret masīvu struktūrā C valodā
Abi Struktūru masīvs un Masīvs struktūrā C programmēšana ir masīvu un struktūru kombinācija, taču abas tiek izmantotas dažādiem mērķiem.
Masīvs struktūrā
Struktūra ir datu tips C kas ļauj saistītu mainīgo lielumu grupu uzskatīt par vienu vienību, nevis atsevišķu entītiju. Struktūra var saturēt dažādu datu tipu elementus – int, char, float, double utt. Tā var saturēt arī masīvu kā tās dalībnieku. Šādu masīvu sauc par masīvu struktūrā. Masīvs struktūrā ir struktūras loceklis, un tam var piekļūt tāpat kā mēs piekļūstam citiem struktūras elementiem.
Tālāk ir parādīta programma, kas izmanto masīva jēdzienu struktūrā. Programma parāda studenta ierakstu, kas ietver ruļļa numurs , pakāpe , un atzīmes nodrošināti dažādos priekšmetos. Atzīmes dažādos priekšmetos ir saglabātas zem masīva, ko sauc atzīmes . Viss ieraksts tiek glabāts struktūrā, ko sauc a kandidāts .
Piemērs
Tālāk redzamā programma parāda masīva izmantošanu struktūrā.
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; }> |
Izvade
Roll number : 1 Grade : A Marks secured: Subject 1 : 98.50 Subject 2 : 77.00 Subject 3 : 89.00 Subject 4 : 78.50
Struktūru masīvs
Masīvs ir tāda paša veida datu vienumu kolekcija. Katrs masīva elements var būt int, char, float, double vai pat struktūra. Mēs esam redzējuši, ka struktūra ļauj dažādu datu tipu elementus grupēt kopā ar vienu nosaukumu. Pēc tam šo struktūru var uzskatīt par jaunu datu tipu. Tātad masīvs var ietvert šī jaunā datu tipa elementus. Struktūru masīvs atrod savus lietojumus, grupējot ierakstus un nodrošina ātru piekļuvi.
Zemāk ir parādīts dažādu struktūru klāsts. Masīvā ir informācija par klases skolēniem. Sīkāka informācija ietver ruļļa numurs, pakāpe , un atzīmes , kas ir sagrupēti zem struktūras (ieraksta). Katram studentam ir viens ieraksts. Tādā veidā saistītu mainīgo lielumu kolekciju var apkopot vienā entītijā, lai uzlabotu koda skaidrību un palielinātu tā efektivitāti.
Piemērs
Zemāk esošā programma parāda dažādu struktūru izmantošanu.
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; }> |
Izvade
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
Atšķirība starp struktūru masīvu un masīvu struktūrās
Zemāk ir tabulas atšķirība starp masīvu struktūrā un struktūru masīvu:
| Parametrs | Masīvs struktūrā | Struktūru masīvs |
|---|---|---|
| Pamatideja | Struktūra satur masīvu kā tās dalībnieku mainīgo. | Masīvs, kurā katram elementam ir tipa struktūra. |
| Sintakse | struct class { int ar[10]; } a1, a2, a3; | struct class { int a, b, c; } studenti[10]; |
| Piekļuve | Var piekļūt, izmantojot punktu operatoru, tāpat kā mēs piekļūstam citiem struktūras elementiem. | Var piekļūt, indeksējot, tāpat kā mēs piekļūstam masīvam. |
| Piekļuves elementu sintakse | struktūra.masīvs[indekss] | masīvs[indekss].biedrs |
| Atmiņas struktūra | Masīvs struktūrā tiks saglabāts secīgā atmiņā, un struktūras pildījums nav atkarīgs no masīva lieluma. | Struktūras polsterējuma dēļ starp struktūras elementiem būs tukša vieta. |