Beim Umgang mit einer großen Menge zusammengehöriger Daten und unterschiedlicher Datentypen ist deren effiziente Organisation und Verwaltung von entscheidender Bedeutung. In der C-Programmierung stellt die Kombination von Arrays und Strukturen, d. h. Arrays von Strukturen, ein leistungsstarkes Werkzeug zur Verwaltung dar. In diesem Artikel diskutieren wir das Konzept eines Arrays von Strukturen in C.
Namenskonvention Java
Was ist Array?
Das Array ist eine homogene Sammlung von Elementen, die im kontinuierlichen Speicherort gespeichert sind. Die Größe des Arrays ist fest und wir können über ihren Index zufällig auf die Elemente zugreifen.
Array-Deklaration
array_type array_name [size];>
Was ist Struktur?
Die Struktur ist einer der benutzerdefinierten Datentypen in C, der als Mitglieder Elemente unterschiedlichen Typs enthalten kann.
Deklaration einer Struktur in C
struct structure_name{ memberType memberName; ... ... };> Reihe von Strukturen
Ein Array, dessen Elemente vom Typ Struktur sind, wird als Strukturarray bezeichnet. Dies ist im Allgemeinen nützlich, wenn wir in unserem Programm mehrere Strukturvariablen benötigen.
Bedarf an einer Reihe von Strukturen
Angenommen, wir haben 50 Mitarbeiter und müssen die Daten von 50 Mitarbeitern speichern. Dazu müssen wir also 50 Variablen vom Typ „struct Employee“ definieren und die Daten darin speichern. Allerdings ist die Deklaration und Handhabung der 50 Variablen keine leichte Aufgabe. Stellen wir uns ein größeres Szenario vor, etwa 1000 Mitarbeiter.
Wenn wir die Variable also auf diese Weise deklarieren, ist es nicht möglich, damit umzugehen.
struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;>
Dazu können wir ein Array definieren, dessen Datentyp struct Employee ist, sodass es leicht zu verwalten ist.
Deklaration einer Reihe von Strukturen
struct structure_name array_name [number_of_elements];>
Initialisierung eines Arrays von Strukturen
Wir können das Array von Strukturen auf folgende Weise initialisieren:
Java-Array initialisieren
struct structure_name array_name [number_of_elements] = { {element1_value1, element1_value2, ....}, {element2_value1, element2_value2, ....}, ...... ...... };> Die gleiche Initialisierung kann auch wie folgt durchgeführt werden:
struct structure_name array_name [number_of_elements] = { element1_value1, element1_value2 ...., element2_value1, element2_value2 ..... };> GNU C-Compiler unterstützen die festgelegte Initialisierung für Strukturen, sodass wir diese auch bei der Initialisierung eines Arrays von Strukturen verwenden können.
struct structure_name array_name [number_of_elements] = { {.element3 = value, .element1 = value, ....}, {.element2 = value, .elementN = value, ....}, ...... ...... };> Beispiel für ein Strukturarray in C
C
// C program to demonstrate the array of structures> #include> > // structure template> struct> Employee {> >char> Name[20];> >int> employeeID;> >int> WeekAttendence[7];> };> > // driver code> int> main()> {> >// defining array of structure of type Employee> >struct> Employee emp[5];> > >// adding data> >for> (>int> i = 0; i <5; i++) {> >emp[i].employeeID = i;> >strcpy>(emp[i].Name,>'Amit'>);> >int> week;> >for> (week = 0; week <7; week++) {> >int> attendence;> >emp[i].WeekAttendence[week] = week;> >}> >}> >printf>(>'
'>);> > >// printing data> >for> (>int> i = 0; i <5; i++) {> >printf>(>'Emplyee ID: %d - Employee Name: %s
'>,> >emp[i].employeeID, emp[i].Name);> >printf>(>'Attendence
'>);> >int> week;> >for> (week = 0; week <7; week++) {> >printf>(>'%d '>, emp[i].WeekAttendence[week]);> >}> >printf>(>'
'>);> >}> > >return> 0;> }> |
>
Java-Rückgabearray
>
Ausgabe
Emplyee ID: 0 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 1 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 2 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 3 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 4 - Employee Name: Amit Attendence 0 1 2 3 4 5 6>