C-Struktur
C-Struktur
In diesem Tutorial lernen Sie Strukturtypen in der C-Programmierung anhand von Beispielen kennen.
In der C-Programmierung ist ein Struct (oder eine Struktur) eine Sammlung von Variablen (die unterschiedlichen Typs sein können) unter einem einzigen Namen.
Strukturen definieren
Bevor Sie Strukturvariablen erstellen können, müssen Sie ihren Datentyp definieren. Um eine Struktur zu definieren, wird der struct
Schlüsselwort wird verwendet.
Syntax der Struktur
struct structureName {
dataType member1;
dataType member2;
...
};
Zum Beispiel
struct Person {
char name[50];
int citNo;
float salary;
};
Hier ein abgeleiteter Typ struct Person
ist definiert. Jetzt können Sie Variablen dieses Typs erstellen.
Strukturvariablen erstellen
Wenn ein struct
type deklariert ist, wird kein Speicherplatz oder Arbeitsspeicher zugewiesen. Um Speicher eines bestimmten Strukturtyps zuzuweisen und damit zu arbeiten, müssen wir Variablen erstellen.
So erstellen wir Strukturvariablen:
struct Person {
// code
};
int main() {
struct Person person1, person2, p[20];
return 0;
}
Eine andere Möglichkeit, eine struct
zu erstellen Variable ist:
struct Person {
// code
} person1, person2, p[20];
In beiden Fällen
- person1 und person2 sind
struct Person
Variablen - p[] ist ein
struct Person
Array der Größe 20.
Auf Mitglieder einer Struktur zugreifen
Es gibt zwei Arten von Operatoren, die für den Zugriff auf Elemente einer Struktur verwendet werden.
.
- Mitgliedsoperator->
- Strukturzeigeroperator (wird im nächsten Tutorial besprochen)
Angenommen, Sie möchten auf das Gehalt zugreifen von person2 . So können Sie es tun.
person2.salary
Beispiel 1:C++-Strukturen
#include <stdio.h>
#include <string.h>
// create struct with person1 variable
struct Person {
char name[50];
int citNo;
float salary;
} person1;
int main() {
// assign value to name of person1
strcpy(person1.name, "George Orwell");
// assign values to other person1 variables
person1.citNo = 1984;
person1. salary = 2500;
// print struct variables
printf("Name: %s\n", person1.name);
printf("Citizenship No.: %d\n", person1.citNo);
printf("Salary: %.2f", person1.salary);
return 0;
}
Ausgabe
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
In diesem Programm haben wir einen struct
erstellt mit dem Namen Person
. Wir haben auch eine Variable von Person
erstellt namens person1 .
Unter main()
haben wir den in Person
definierten Variablen Werte zugewiesen für die person1 Objekt.
strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;
Beachten Sie, dass wir strcpy()
verwendet haben Funktion, um person1.name den Wert zuzuweisen .
Das liegt daran, dass name ist ein char
Array (C-String) und wir können den Zuweisungsoperator =
nicht verwenden damit, nachdem wir den String deklariert haben.
Schließlich haben wir die Daten von person1 gedruckt .
Schlüsselwort typedef
Wir verwenden den typedef
-Schlüsselwort, um einen Aliasnamen für Datentypen zu erstellen. Es wird häufig mit Strukturen verwendet, um die Syntax zum Deklarieren von Variablen zu vereinfachen.
Sehen wir uns zum Beispiel den folgenden Code an:
struct Distance{
int feet;
float inch;
};
int main() {
struct Distance d1, d2;
}
Wir können typedef
verwenden um einen äquivalenten Code mit einer vereinfachten Syntax zu schreiben:
typedef struct Distance {
int feet;
float inch;
} distances;
int main() {
distances d1, d2;
}
Beispiel 2:C++-Typedef
#include <stdio.h>
#include <string.h>
// struct with typedef person
typedef struct Person {
char name[50];
int citNo;
float salary;
} person;
int main() {
// create Person variable
person p1;
// assign value to name of p1
strcpy(p1.name, "George Orwell");
// assign values to other p1 variables
p1.citNo = 1984;
p1. salary = 2500;
// print struct variables
printf("Name: %s\n", p1.name);
printf("Citizenship No.: %d\n", p1.citNo);
printf("Salary: %.2f", p1.salary);
return 0;
}
Ausgabe
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Hier haben wir typedef
verwendet mit dem Person
-Struktur zum Erstellen eines Alias person
.
// struct with typedef person
typedef struct Person {
// code
} person;
Jetzt können wir einfach einen Person
deklarieren Variable mit dem person
Pseudonym:
// equivalent to struct Person p1
person p1;
Verschachtelte Strukturen
In der C-Programmierung können Sie Strukturen innerhalb einer Struktur erstellen. Zum Beispiel
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integers;
} num1, num2;
Angenommen, Sie möchten imag festlegen von num2 Variable auf 11 . So geht's:
num2.comp.imag = 11;
Beispiel 3:Verschachtelte C++-Strukturen
#include <stdio.h>
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integer;
} num1;
int main() {
// initialize complex variables
num1.comp.imag = 11;
num1.comp.real = 5.25;
// initialize number variable
num1.integer = 6;
// print struct variables
printf("Imaginary Part: %d\n", num1.comp.imag);
printf("Real Part: %.2f\n", num1.comp.real);
printf("Integer: %d", num1.integer);
return 0;
}
Ausgabe
Imaginary Part: 11 Real Part: 5.25 Integer: 6
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 Variablen name erstellen , citNo und Gehalt 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 verschiedene Variablen erstellen:name1 , citNo1 , Gehalt1 , name2 , citNo2 , Gehalt2 usw.
Ein besserer Ansatz wäre eine Sammlung aller zugehörigen Informationen unter einem einzigen Namen Person
strukturieren und für jeden nutzen.
Mehr über Strukturen
- Strukturen und Zeiger
- Strukturen an eine Funktion übergeben
C Sprache
- C# Hello World – Ihr erstes C#-Programm
- C#-Schlüsselwörter und Bezeichner
- C#-Variablen und (primitive) Datentypen
- C#-Operatoren
- C# Bitwise- und Bit-Shift-Operatoren
- C# Grundlegende Ein- und Ausgabe
- C#-Ausdrücke, -Anweisungen und -Blöcke (mit Beispielen)
- C#-Kommentare
- C#-switch-Anweisung
- C# ternärer (? :) Operator