logo

Array of Structures vs Array inom en struktur i C

Både Uppsättning av strukturer och Array inom en struktur i C-programmering är en kombination av arrayer och strukturer men båda används för att tjäna olika syften.

Array inom en struktur

En struktur är en datatyp i C som gör att en grupp av relaterade variabler kan behandlas som en enda enhet istället för separata enheter. En struktur kan innehålla element av olika datatyper – int, char, float, double, etc. Den kan också innehålla en array som dess medlem. En sådan array kallas en array inom en struktur. En array inom en struktur är en medlem av strukturen och kan nås precis som vi kommer åt andra element i strukturen.



Nedan visas en demonstration av ett program som använder konceptet med arrayen i en struktur. Programmet visar posten för en student som består av valsnummer , kvalitet , och märken säkrade i olika ämnen. Märkena i olika ämnen har lagrats under en array som kallas märken . Hela posten lagras under en struktur som kallas a kandidat .

Exempel

Nedanstående program visar användningen av en array i en struktur.

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

pojo
>

panda smälter
>

Produktion

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

Uppsättning av strukturer

En array är en samling dataobjekt av samma typ. Varje element i arrayen kan vara int, char, float, double eller till och med en struktur. Vi har sett att en struktur gör att element av olika datatyper kan grupperas under ett enda namn. Denna struktur kan då ses som en ny datatyp i sig. Så en array kan bestå av element av denna nya datatyp. En rad strukturer hittar sina tillämpningar i att gruppera poster tillsammans och ger snabb åtkomst.

Nedan visas en demonstration av en rad strukturer. Arrayen innehåller detaljerna om eleverna i en klass. Detaljerna inkluderar rullnummer, betyg , och märken , som har grupperats under en struktur (post). Det finns en post för varje elev. Detta är hur en samling relaterade variabler kan sättas samman under en enda enhet för att förbättra kodens tydlighet och öka dess effektivitet.

Exempel

Nedanstående program visar användningen av en rad strukturer.

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

>

sts nedladdning

>

Produktion

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>

Skillnad mellan Array of Structures och Array in Structures

Nedan är den tabellformade skillnaden mellan Arrayen inom en struktur och Array of Structures:

Parameter

Array inom en struktur

Uppsättning av strukturer

Grundläggande idé En struktur innehåller en array som dess medlemsvariabel. En array där varje element är av typstruktur.
Syntax struct class { int ar[10]; } al, a2, a3; struct class { int a, b, c; } studenter[10];
Tillgång Kan nås med hjälp av punktoperatorn precis som vi kommer åt andra delar av strukturen. Kan nås genom att indexera precis som vi kommer åt en array.
Syntax för åtkomstelement structure.array[index] array[index].medlem
Minnesstruktur Array inom strukturen kommer att lagras i sekventiellt minne och strukturutfyllnad är inte beroende av storleken på arrayen. Det kommer att finnas lite tomt utrymme mellan strukturelementen på grund av strukturstoppning.