Inhaltsverzeichnis:
Video: Programmieren in C Tutorial #17 - Strukturen (Struct) 2024
Sie können sich die C-Programmiersprachenstruktur als -Multivariabel, oder mehrere Variablen in einer Liste vorstellen. Sie verwenden Strukturen, um komplexe Informationen zu speichern oder darauf zuzugreifen. Auf diese Weise können Sie verschiedene int-, char-, float-Variablen und sogar Arrays in einem einzigen Paket speichern.
Grundlagen von struct
Eine Struktur ist kein Variablentyp. Stattdessen betrachten Sie es als ein Frame, der mehrere Variablentypen enthält. In vielerlei Hinsicht ähnelt eine Struktur einem Datensatz in einer Datenbank. Zum Beispiel:
Name Age Gambling debt
Bei diesen drei Items kann es sich um Felder in einem Datenbankdatensatz handeln, aber sie können auch Member in einer Struktur sein: Name wäre eine Zeichenfolge; Alter, eine ganze Zahl; und Gambling Debt, ein vorzeichenloser Gleitkommawert. So würde ein solcher Datensatz als Struktur in C aussehen:
struct record {char name [32]; int Alter; float Schulden;};
struct ist ein C-Schlüsselwort, das eine neue Struktur einführt, definiert oder erstellt.
Datensatz ist der Name der neu angelegten Struktur.
Innerhalb der geschweiften Klammern verweilen die Mitglieder der Struktur, die in der benannten Struktur enthaltenen Variablen. Der Datensatzstrukturtyp enthält drei Membervariablen: einen Zeichenfolgennamen, ein int benanntes Alter und einen Gleitkommawert, debt.
Um die Struktur zu verwenden, müssen Sie eine Strukturvariable des von Ihnen erstellten Strukturtyps deklarieren. Zum Beispiel:
struct Datensatz Mensch;
Diese Zeile deklariert eine neue Variable des Datensatzstrukturtyps. Die neue Variable heißt Mensch .
Strukturvariablen können auch deklariert werden, wenn Sie die Struktur selbst definieren. Zum Beispiel:
struct record {char name [32]; int Alter; float Schulden;} Menschen;
Diese Anweisungen definieren die Datensatzstruktur und deklarieren eine Datensatzstrukturvariable, menschlich . Es können auch mehrere Variablen dieses Strukturtyps erstellt werden:
struct record {char name [32]; int Alter; Float Schulden;} Bill, Mary, Dan, Susie;
In diesem Beispiel werden vier Datensatzstrukturvariablen erstellt. Jede Variable hat Zugriff auf die drei in der Struktur definierten Member.
Um auf Mitglieder in einer Strukturvariablen zuzugreifen, verwenden Sie einen Punkt, der der -Memberoperator ist. Es verbindet den Namen der Strukturvariablen mit einem Mitgliedsnamen. Zum Beispiel:
printf ("Opfer:% sn", Rechnungsname);
Diese Anweisung referenziert das Namenselement in der Strukturvariable Rechnung . Ein char-Array kann wie jedes andere char-Array in Ihrem Code verwendet werden. Andere Mitglieder in der Strukturvariablen können ebenso wie ihre individuellen Gegenstücke verwendet werden:
dan.Alter = 32;
Füllen einer Struktur
Wie bei anderen Variablen können Sie einer Strukturvariablen Werte zuweisen, wenn sie erstellt werden. Sie müssen zuerst den Strukturtyp definieren und dann eine Strukturvariable deklarieren, deren Elementwerte voreingestellt sind. Stellen Sie sicher, dass die voreingestellten Werte mit der Reihenfolge und dem Typ der in der Struktur definierten Elemente übereinstimmen, wie in Deklarieren einer initialisierten Struktur gezeigt.
ERKLÄRUNG EINER INITIALISIERTEN STRUKTUR
#include int main () {struct präsident {char name [40]; int Jahr;}; struct president first = {"George Washington", 1789}; printf ("Der erste Präsident war% sn", erster Name); printf ("Er wurde in% dn eingeweiht", erstes Jahr); return (0);}
Übung 1 : Erstellen Sie ein neues Programm, indem Sie den Quellcode aus Deklarieren einer initialisierten Struktur in den Editor eingeben. Baue und laufe.
Sie können eine Struktur auch deklarieren und in einer Anweisung initialisieren:
struct president {char name [40]; int Jahr;} zuerst = {"George Washington", 1789};
Übung 2 : Ändern Sie Ihren Quellcode aus Übung 1, sodass die Struktur und Variable als eine Anweisung deklariert und initialisiert werden.
Obwohl Sie eine Struktur deklarieren und eine Strukturvariable wie gerade gezeigt initialisieren können, können Sie nur einmal mit diesem Trick davonkommen. Sie können die Technik nicht verwenden, um die zweite Strukturvariable zu deklarieren, die auf herkömmliche Weise ausgeführt werden muss, wie in Deklarieren einer initialisierten Struktur gezeigt.
Übung 3 : Fügen Sie zu Ihrem Code noch eine zweite President-Strukturvariable hinzu, die diese Struktur mit Informationen über den zweiten Präsidenten, John Adams, initialisiert, der 1797 eingeweiht wurde. Zeigen Sie den Inhalt beider Strukturen an.
So erstellen Sie ein Array mit Strukturen
Das Erstellen einzelner Strukturvariablen ist so langweilig und verschwenderisch wie das Erstellen einer Reihe von individuellen Variablentypen. Die Lösung für mehrere Strukturen ist die gleiche wie für mehrere einzelne Variablen: ein Array.
Ein Strukturarray wird wie folgt deklariert:
struct score player [4];
Diese Anweisung deklariert ein Array von Bewertungsstrukturen. Das Array heißt player und enthält vier Strukturvariablen als Elemente.
Auf die Strukturen im Array wird mit einer Kombination aus Array- und Strukturnotation zugegriffen. Zum Beispiel:
Spieler [2]. name
Die Variable in der vorhergehenden Zeile greift auf das Namenselement im dritten Element des Player-Struktur-Arrays zu. Ja, das ist das dritte Element, weil das erste Element wie folgt referenziert würde:
player [0]. name
Arrays beginnen die Nummerierung mit dem Element 0, nicht mit Element 1.
Zeile 10 in Arrays von Strukturen deklariert ein Array von vier Bewertungsstrukturen. Das Array wird als Spieler bezeichnet. Die Zeilen 13 bis 19 füllen jede Struktur im Array. Die Zeilen 21 bis 27 zeigen die Elementwerte jeder Struktur an.
ARRAYS DER STRUKTUREN
#include int main () {struct scores {char name [32]; int Punktzahl;}; Struct Scores Spieler [4]; int x; für (x = 0; x <4; x ++) {printf ("Spieler eintragen% d:", x + 1); scanf ("% s", Spieler [x].Name); printf ("Geben Sie ihre Punktzahl ein:"); scanf ("% d", & Spieler [x]. score);} puts ("Spielerinfo"); printf ("# tNametScoren"); für (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, Spieler [x]. Name, Spieler [x]. Punktzahl);} return (0);}
Übung 4 : Geben Sie den Quellcode aus Arrays of Structures in Ihren Editor ein. Erstellen Sie das Programm, und führen Sie es aus. Versuchen Sie, die Punktzahlen auf weniger als fünf Stellen zu halten, damit sie richtig ausgerichtet sind.
Übung 5 : Fügen Sie Code zu Arrays von Strukturen hinzu, so dass die Anzeige von Strukturen mit der höchsten zuerst aufgelisteten Punktzahl sortiert wird. Ja, du kannst das tun. Das Sortieren eines Array von Strukturen funktioniert genauso wie das Sortieren eines anderen Arrays.
Hier ein Hinweis: Zeile 27 der Lösung sieht so aus:
player [a] = player [b];
Sie können Struktur-Array-Elemente so vertauschen, wie Sie beliebige Array-Elemente austauschen können. Sie müssen die Mitglieder der Strukturvariablen nicht austauschen.