Die Programmiersprache C bietet viele Möglichkeiten, und eine davon besteht darin, ein Array von Strukturen zu erstellen. Ein Array von Strukturen ermöglicht es Ihnen, mehrere verknüpfte Daten in einer einzigen Datenstruktur zu kombinieren, was in vielen Fällen sehr nützlich sein kann.
Das Erstellen eines Arrays von Strukturen in C unterscheidet sich etwas von dem Erstellen eines regulären Arrays. Sie müssen die Datenstruktur definieren, die Sie verwenden möchten, und dann ein Array dieses Strukturtyps deklarieren. Denken Sie daran, über die Anzahl der Elemente im Array nachzudenken, um genügend Speicher zuzuweisen.
Es ist wichtig, sich daran zu erinnern, dass jedes Element des Strukturarrays Zugriff auf jedes Feld der Struktur hat. Sie können auf ein bestimmtes Element eines Arrays über seinen Index zugreifen und den Operator verwenden. "" um auf Strukturfelder zuzugreifen. Dadurch können Sie Gruppen verwandter Daten bequem speichern und verarbeiten.
Eine weitere nützliche Möglichkeit eines Arrays von Strukturen besteht darin, seine Elemente an Funktionen zu übergeben. Sie können ein ganzes Array von Strukturen übergeben, was die Datenverarbeitung erheblich vereinfachen kann. Denken Sie daran, die Größe des Arrays beim Übergeben und Empfangen in Funktionen anzugeben, um Speicherprobleme zu vermeiden.
Definieren einer Struktur und Erstellen eines Arrays
Um ein Array von Strukturen in C zu erstellen, müssen Sie zunächst eine Struktur definieren, die die erforderlichen Felder enthält. Dazu wird das Schlüsselwort struct verwendet. Zum Beispiel:
struct Person char name[50];
int age;
float salary;
>;
In diesem Beispiel wird eine Person-Struktur definiert, die drei Felder enthält: name - eine Zeichenfolge mit einem Namen, age - eine Ganzzahl mit Alter und salary - eine reelle Zahl mit Gehalt.
Nachdem Sie eine Struktur definiert haben, können Sie ein Array erstellen, das die Elemente dieser Struktur enthält. Dazu müssen Sie eine Variable vom Typ struct mit dem Namen der Struktur und der Größe des Arrays deklarieren. Zum Beispiel:
struct Person people[10];
In diesem Beispiel wird ein people-Array vom Typ struct Person mit einer Größe von 10 Elementen erstellt. Sie können nun mithilfe des Operators auf die Elemente des Arrays nach Index zugreifen und sie mit Werten füllen. . Zum Beispiel:
strcpy(people[0].name, "John");
people[0].age = 30;
people[0].salary = 5000.0;
In diesem Beispiel wird das erste Element des people-Arrays mit den Werten Name, Alter und Gehalt aufgefüllt.
So können Sie eine Struktur definieren und ein Array von Strukturen in C erstellen, um Daten verschiedener Typen zu speichern und zu verarbeiten, die in einer einzigen Struktur zusammengefasst sind.
Initialisieren und Füllen eines Arrays von Strukturen
Wenn Sie ein Array von Strukturen in C erstellen, müssen Sie jedes Element des Arrays korrekt initialisieren. Mit der Initialisierung können Sie die Anfangswerte für Strukturfelder festlegen, sodass sie später verwendet werden können.
Es gibt mehrere Möglichkeiten, ein Array von Strukturen zu initialisieren. Betrachten Sie die häufigsten von ihnen:
- Grundlinieninitialisierung: in diesem Fall wird jedes Element des Strukturarrays separat initialisiert. Dazu müssen Sie jedem Feld der Struktur bei der Deklaration Werte zuweisen. Zum Beispiel:
struct Person ;int main() ,,>;// . return 0;>
- Statische Initialisierung: in diesem Fall können Sie das spezielle static-Schlüsselwort verwenden, um ein Array von Strukturen gleichzeitig zu deklarieren und zu initialisieren. Zum Beispiel:
struct Point ;static struct Point points[] = ,,>;
- Dynamische Initialisierung: wenn Sie ein Array von Strukturen dynamisch initialisieren, müssen Sie Speicherzuordnungsfunktionen wie malloc() oder calloc() verwenden. Zum Beispiel:
#include #include struct Point ;int main() // . free(points); // освобождение памятиreturn 0;>
Denken Sie daran, Speicher freizugeben, nachdem Sie ein Array von Strukturen verwendet haben, wenn es dynamisch mit malloc() oder calloc() zugewiesen wurde. Dies hilft, Speicherlecks zu vermeiden und die Leistung der Anwendung zu verbessern.
Zugriff auf Elemente eines Strukturarrays
Wenn Sie ein Array von Strukturen in der Sprache C erstellen, müssen Sie möglicherweise auf bestimmte Elemente dieses Arrays zugreifen. Dazu können Sie die Array-Indizes zusammen mit dem Strukturzugriffsoperator verwenden. "".
Die Indizes des Arrays beginnen bei Null, so dass das erste Element im Array einen Index von 0 hat, das zweite Element einen Index von 1 und so weiter.
Um auf ein Element in einem Array von Strukturen zuzugreifen, müssen Sie den Index des Elements angeben und dann den Operator verwenden. "" um auf Strukturfelder zuzugreifen. Wenn Sie beispielsweise ein Array von "Person" -Strukturen mit den Feldern "Name" und "age" haben, um auf den Namen der dritten Person im Array zuzugreifen, können Sie den folgenden Code verwenden:
printf("Имя третьего человека: %s", array[2].name);
Hier ist "array" der Name des Arrays von Strukturen, "2" ist der Index des dritten Elements, "name" ist das Feld der Struktur, das den Namen der Person enthält.
Sie können auch die Werte von Strukturfeldern in einem Array mithilfe von Zuweisungsoperatoren ändern. Wenn Sie beispielsweise das Alter der zweiten Person in einem Array ändern möchten, können Sie den folgenden Code verwenden:
array[1].age = 25;
Hier ist "1" der Index des zweiten Elements, "age" das Feld der Struktur, das das Alter der Person enthält. Wenn Sie den Wert "25" zuweisen, ändert sich das Alter der zweiten Person im Array.
Mithilfe von Indizes und Strukturzugriffsoperatoren können Sie die Elemente eines Arrays von Strukturen frei verwalten und ihre Werte an Ihre Bedürfnisse anpassen.
Arbeiten mit einem Array von Strukturen: Sortieren und Suchen
Wenn Sie mit einem Array von Strukturen in C arbeiten, müssen Sie möglicherweise die Elemente dieses Arrays nach einem bestimmten Kriterium sortieren oder nach bestimmten Elementen suchen. In diesem Abschnitt werden einige nützliche Tipps und Tricks zu diesen Vorgängen behandelt.
Sie können verschiedene Algorithmen verwenden, um ein Array von Strukturen zu sortieren, z. B. Blasensortierung, Auswahlsortierung oder Einfügesortierung. Abhängig von den Anforderungen und der Datenmenge können Sie den optimalen Sortieralgorithmus auswählen.
Eine Möglichkeit, ein Array von Strukturen zu sortieren, besteht darin, eine Blase zu sortieren. Dazu müssen Sie eine Funktion erstellen, die die Strukturelemente vergleicht und sie bei Bedarf austauscht. Wenden Sie diese Funktion dann auf jedes Elementpaar im Array an, bis das Array sortiert ist.
Sie können eine lineare Suche oder eine binäre Suche verwenden, um nach bestimmten Elementen in einem Array von Strukturen zu suchen. Eine lineare Suche durchläuft alle Elemente des Arrays und vergleicht den gewünschten Wert mit jedem Element. Bei der binären Suche wird das Array in zwei Teile aufgeteilt und der gesuchte Wert mit dem Element in der Mitte des Arrays verglichen. Der Prozess wird dann wiederholt, bis das gesuchte Element gefunden wird oder nur noch ein Element im Array vorhanden ist.
| Operation | Algorithmus |
|---|---|
| Sortierung | Blasen sortieren, Auswahl sortieren, Einfügen sortieren |
| Suche | Lineare Suche, binäre Suche |
Die Arbeit mit einem Array von Strukturen beinhaltet also nicht nur das Erstellen und Füllen eines Arrays, sondern auch das Sortieren von Elementen und das Suchen nach bestimmten Elementen in diesem Array. Die Verwendung eines geeigneten Sortier- oder Suchalgorithmus kann diese Vorgänge erheblich vereinfachen und beschleunigen.