Niz struktur proti nizu znotraj strukture v C

Oboje Niz struktur in Niz znotraj strukture v programiranju C je kombinacija nizov in struktur, vendar se oboje uporablja za različne namene.

Niz znotraj strukture

Struktura je vrsta podatkov v C ki omogoča, da se skupina povezanih spremenljivk obravnava kot ena enota namesto ločenih entitet. Struktura lahko vsebuje elemente različnih podatkovnih tipov – int, char, float, double itd. Kot svojega člana lahko vsebuje tudi matriko. Tak niz se imenuje niz znotraj strukture. Niz znotraj strukture je član strukture in do njega lahko dostopamo tako kot dostopamo do drugih elementov strukture.

Spodaj je predstavitev programa, ki uporablja koncept matrike znotraj strukture. Program prikaže zapis študenta, ki vključuje številka zvitka , razred , in oznake zavarovana pri različnih predmetih. Ocene pri različnih predmetih so bile shranjene v nizu, imenovanem oznake . Celoten zapis je shranjen v strukturi, imenovani a kandidat .



Primer

Spodnji program prikazuje uporabo matrike znotraj strukture.

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

Izhod

Roll number : 1 Grade : A Marks secured: Subject 1 : 98.50 Subject 2 : 77.00 Subject 3 : 89.00 Subject 4 : 78.50 

Niz struktur

Matrika je zbirka podatkovnih elementov iste vrste. Vsak element matrike je lahko int, char, float, double ali celo struktura. Videli smo, da struktura omogoča, da se elementi različnih tipov podatkov združijo pod enim imenom. To strukturo lahko potem obravnavamo kot nov podatkovni tip sam po sebi. Torej lahko niz vsebuje elemente tega novega podatkovnega tipa. Niz struktur najde svoje aplikacije pri združevanju zapisov skupaj in omogoča hiter dostop.

Spodaj je predstavitev niza struktur. Matrika vsebuje podrobnosti o študentih v razredu. Podrobnosti vključujejo roll number, grade , in oznake , ki so bili združeni pod strukturo (zapis). Za vsakega študenta obstaja en zapis. Tako je mogoče zbirko povezanih spremenljivk sestaviti v eno samo entiteto, da se izboljša jasnost kode in poveča njena učinkovitost.

Primer

Spodnji program prikazuje uporabo niza struktur.

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

Izhod

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 

Razlika med nizom struktur in nizom znotraj struktur

Spodaj je tabelarična razlika med nizom znotraj strukture in nizom struktur:

Parameter

Niz znotraj strukture

Niz struktur

Osnovna ideja Struktura vsebuje matriko kot spremenljivko člana. Matrika, v kateri ima vsak element strukturo tipa.
Sintaksa struct class { int ar[10]; } a1, a2, a3; struct class { int a, b, c; } študenti[10];
Dostop Do njega lahko dostopamo z uporabo operatorja pike, tako kot dostopamo do drugih elementov strukture. Do njega lahko dostopamo z indeksiranjem, tako kot dostopamo do matrike.
Sintaksa elementov dostopa struktura.matrika[indeks] matrika[indeks].član
Struktura spomina Matrika znotraj strukture bo shranjena v zaporedni pomnilnik in oblazinjenje strukture ni odvisno od velikosti matrike. Med elementi strukture bo nekaj praznega prostora zaradi oblazinjenja strukture.


Top Članki

Kategorija

Zanimivi Članki