Array von Strukturen vs. Array innerhalb einer Struktur in C

Beide Reihe von Strukturen Und Array innerhalb einer Struktur In der C-Programmierung handelt es sich um eine Kombination aus Arrays und Strukturen, die jedoch beide unterschiedlichen Zwecken dienen.

Array innerhalb einer Struktur

Eine Struktur ist ein Datentyp in C Dadurch kann eine Gruppe verwandter Variablen als eine Einheit und nicht als separate Einheiten behandelt werden. Eine Struktur kann Elemente verschiedener Datentypen enthalten – int, char, float, double usw. Sie kann auch ein Array als Mitglied enthalten. Ein solches Array wird als Array innerhalb einer Struktur bezeichnet. Ein Array innerhalb einer Struktur ist ein Mitglied der Struktur und kann genauso aufgerufen werden, wie wir auf andere Elemente der Struktur zugreifen.

Nachfolgend finden Sie eine Demonstration eines Programms, das das Konzept des Arrays innerhalb einer Struktur verwendet. Das Programm zeigt den Datensatz eines Studenten an, der Folgendes umfasst: Rollennummer , Grad , Und Markierungen in verschiedenen Fächern gesichert. Die Noten in verschiedenen Fächern wurden in einem Array namens gespeichert Markierungen . Der gesamte Datensatz wird unter einer Struktur namens gespeichert A Kandidat .



Beispiel

Das folgende Programm demonstriert die Verwendung eines Arrays innerhalb einer 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; }>

Ausgabe

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

Reihe von Strukturen

Ein Array ist eine Sammlung von Datenelementen desselben Typs. Jedes Element des Arrays kann int, char, float, double oder sogar eine Struktur sein. Wir haben gesehen, dass eine Struktur es ermöglicht, Elemente unterschiedlicher Datentypen unter einem einzigen Namen zu gruppieren. Diese Struktur kann dann als eigenständiger neuer Datentyp betrachtet werden. Ein Array kann also Elemente dieses neuen Datentyps umfassen. Eine Reihe von Strukturen findet ihre Anwendung bei der Gruppierung der Datensätze und sorgt für einen schnellen Zugriff.

Nachfolgend finden Sie eine Demonstration einer Reihe von Strukturen. Das Array enthält die Details der Schüler einer Klasse. Die Details umfassen die Rollennummer, Note , und Noten , die unter einer Struktur (Datensatz) gruppiert wurden. Für jeden Schüler gibt es einen Datensatz. Auf diese Weise kann eine Sammlung verwandter Variablen unter einer einzigen Entität zusammengestellt werden, um die Klarheit des Codes zu verbessern und seine Effizienz zu steigern.

Beispiel

Das folgende Programm demonstriert die Verwendung eines Arrays von Strukturen.

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

Ausgabe

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 

Unterschied zwischen einer Anordnung von Strukturen und einer Anordnung innerhalb von Strukturen

Unten ist der tabellarische Unterschied zwischen dem Array innerhalb einer Struktur und dem Array von Strukturen aufgeführt:

Parameter

Array innerhalb einer Struktur

Reihe von Strukturen

Die Grundidee Eine Struktur enthält ein Array als Mitgliedsvariable. Ein Array, in dem jedes Element vom Typ Struktur ist.
Syntax struct class { int ar[10]; } a1, a2, a3; struct class { int a, b, c; } Studenten[10];
Zugang Der Zugriff kann mit dem Punktoperator erfolgen, genau wie wir auf andere Elemente der Struktur zugreifen. Der Zugriff kann durch Indizierung erfolgen, genau wie beim Zugriff auf ein Array.
Auf die Syntax von Elementen zugreifen Struktur.Array[Index] array[index].member
Gedächtnisstruktur Arrays innerhalb der Struktur werden im sequentiellen Speicher gespeichert und das Auffüllen der Struktur hängt nicht von der Größe des Arrays ab. Aufgrund der Strukturpolsterung entsteht zwischen den Strukturelementen etwas Leerraum.


Top Artikel

Kategorie

Interessante Artikel