logo

Rakenteiden joukko vs. matriisi rakenteen sisällä C:ssä

Molemmat Joukko rakenteita ja Joukko rakenteen sisällä C:ssä ohjelmointi on taulukoiden ja rakenteiden yhdistelmä, mutta molempia käytetään eri tarkoituksiin.

Joukko rakenteen sisällä

Rakenne on tietotyyppi C joka mahdollistaa toisiinsa liittyvien muuttujien ryhmän käsittelemisen yhtenä yksikkönä erillisten kokonaisuuksien sijaan. Rakenne voi sisältää elementtejä eri tietotyypeistä – int, char, float, double jne. Se voi sisältää jäsenenä myös taulukon. Tällaista taulukkoa kutsutaan taulukoksi rakenteen sisällä. Rakenteen sisällä oleva matriisi on rakenteen jäsen, ja sitä voidaan käyttää aivan kuten käytämme muita rakenteen elementtejä.



Alla on esittely ohjelmasta, joka käyttää taulukon käsitettä rakenteessa. Ohjelma näyttää opiskelijan tietueen, joka sisältää rullanumero , arvosana , ja merkit turvattu eri aiheissa. Arvosanat eri aiheissa on tallennettu taulukkoon nimeltä merkit . Koko tietue on tallennettu rakenteeseen nimeltä a ehdokas .

Esimerkki

Alla oleva ohjelma esittelee taulukon käyttöä rakenteessa.

C




jos muuten bash





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

>

käänteinen merkkijono java

>

Lähtö

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

Joukko rakenteita

Taulukko on kokoelma samantyyppisiä tietokohteita. Jokainen taulukon elementti voi olla int, char, float, double tai jopa rakenne. Olemme nähneet, että rakenne mahdollistaa eri tietotyyppien elementtien ryhmittelyn yhden nimen alle. Tätä rakennetta voidaan sitten pitää uutena tietotyyppinä sinänsä. Joten matriisi voi sisältää tämän uuden tietotyypin elementtejä. Joukko rakenteita löytää sovelluksensa tietueiden ryhmittelyssä ja tarjoaa nopean pääsyn.

Alla on esittely joukosta rakenteita. Taulukko sisältää luokan oppilaiden tiedot. Yksityiskohtiin kuuluvat mm rullan numero, arvosana , ja merkit , jotka on ryhmitelty rakenteen (tietueen) alle. Jokaiselle opiskelijalle on olemassa yksi tietue. Näin kokoelma toisiinsa liittyviä muuttujia voidaan koota yhden kokonaisuuden alle koodin selkeyden ja tehokkuuden lisäämiseksi.

Esimerkki

Alla oleva ohjelma esittelee useiden rakenteiden käyttöä.

C

kruskals-algoritmi




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

>

>

Lähtö

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>

Ero rakennetaulukon ja rakenteiden sisällä olevan taulukon välillä

Alla on taulukkomuotoinen ero rakenteen sisällä olevan taulukon ja rakennetaulukon välillä:

Parametri

Joukko rakenteen sisällä

java-palvelinsivut

Joukko rakenteita

Perusidea Rakenne sisältää jäsenmuuttujana taulukon. Taulukko, jossa jokainen elementti on tyyppirakennetta.
Syntaksi struct class { int ar[10]; } a1, a2, a3; struct class { int a, b, c; } opiskelijaa[10];
Pääsy Voidaan käyttää pisteoperaattorilla aivan kuten käytämme muita rakenteen elementtejä. Voidaan käyttää indeksoimalla aivan kuten käytämme taulukkoa.
Pääsy elementtien syntaksi rakenne.array[indeksi] array[index].member
Muistin rakenne Rakenteen sisällä oleva taulukko tallennetaan peräkkäiseen muistiin ja rakenteen täyttö ei riipu taulukon koosta. Rakenneelementtien väliin jää tyhjää tilaa rakenteen pehmusteesta johtuen.