C struct (Strukturen)

In diesem Tutorial lernen Sie Strukturtypen in der C-Programmierung kennen. Sie lernen anhand von Beispielen, Strukturen zu definieren und zu verwenden.

Bei der C-Programmierung ist eine Struktur (oder Struktur) eine Sammlung von Variablen (kann unterschiedlichen Typs sein) unter einem einzigen Namen.

Wie definiere ich Strukturen?

Bevor Sie Strukturvariablen erstellen können, müssen Sie deren Datentyp definieren. Um eine Struktur zu definieren, wird das structSchlüsselwort verwendet.

Syntax von struct

 struct structName (dataType member1; dataType member2;…); 

Hier ist ein Beispiel:

 struct Person (Char Name (50); int citNo; Float Gehalt;); 

Hier wird ein abgeleiteter Typ struct Persondefiniert. Jetzt können Sie Variablen dieses Typs erstellen.

Erstellen Sie Strukturvariablen

Wenn ein Strukturtyp deklariert wird, wird kein Speicher oder Speicher zugewiesen. Um Speicher eines bestimmten Strukturtyps zuzuweisen und damit zu arbeiten, müssen Variablen erstellt werden.

So erstellen wir Strukturvariablen:

struct Person (Char Name (50); int citNo; Float Gehalt;); int main () (struct Person person1, person2, p (20); return 0;)

Eine andere Möglichkeit zum Erstellen einer Strukturvariablen ist:

 struct Person (Char Name (50); int citNo; Float Gehalt;) Person1, Person2, p (20); 

In beiden Fällen werden zwei Variablen person1, person2 und eine Arrayvariable p mit 20 Typelementen struct Personerstellt.

Greifen Sie auf Mitglieder einer Struktur zu

Es gibt zwei Arten von Operatoren, die für den Zugriff auf Elemente einer Struktur verwendet werden.

  1. . - Mitgliedsbetreiber
  2. -> - Strukturzeigeroperator (wird im nächsten Tutorial besprochen)

Angenommen, Sie möchten auf das Gehalt von person2 zugreifen. So können Sie es machen.

 person2.Gehalt

Beispiel: Fügen Sie zwei Entfernungen hinzu

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

Ausgabe

 1. Entfernung Fuß eingeben: 12 Zoll eingeben: 7,9 2. Abstand Fuß eingeben: 2 Zoll eingeben: 9,8 Summe der Entfernungen = 15'-5,7 "

Schlüsselwort typedef

Wir verwenden das typedefSchlüsselwort, um einen Aliasnamen für Datentypen zu erstellen. Es wird häufig mit Strukturen verwendet, um die Syntax der Deklaration von Variablen zu vereinfachen.

Dieser Code

struct Distance (int Fuß; float inch;); int main () (struct Abstand d1, d2;)

ist äquivalent zu

typedef struct Entfernung (int Fuß; float inch;) Entfernungen; int main () (Abstände d1, d2;)

Verschachtelte Strukturen

In der C-Programmierung können Sie Strukturen innerhalb einer Struktur erstellen. Beispielsweise,

Strukturkomplex (int imag; float real;); struct number (struct complex comp; int integers;) num1, num2;

Angenommen, Sie möchten imag der Variablen num2 auf 11 setzen. So können Sie dies tun:

 num2.comp.imag = 11; 

Warum Strukturen in C?

Angenommen, Sie möchten Informationen über eine Person speichern: ihren Namen, ihre Staatsbürgerschaftsnummer und ihr Gehalt. Sie können verschiedene Variablennamen, CitNo und Gehalt erstellen, um diese Informationen zu speichern.

Was ist, wenn Sie Informationen von mehr als einer Person speichern müssen? Jetzt müssen Sie für jede Information pro Person unterschiedliche Variablen erstellen: Name1, CitNo1, Gehalt1, Name2, CitNo2, Gehalt2 usw.

Ein besserer Ansatz wäre, eine Sammlung aller zugehörigen Informationen unter einer einzigen Namensstruktur zu Personhaben und diese für jede Person zu verwenden.

Mehr zur Struktur

  • Strukturen und Zeiger
  • Strukturen an eine Funktion übergeben

Interessante Beiträge...