Definition und Verwendung von Strukturen (C Programmiersprache)
Definition und Verwendung von Strukturen in C
Strukturdefinition
Um eine Struktur in C zu definieren, verwenden wir das Schlüsselwort `struct`. Hier ist ein Beispiel für die Definition einer Struktur, die Informationen über eine Person speichert:
struct Person {
char name[50];
int alter;
float gehalt;
};
Strukturdefinition
Um eine Struktur in C zu definieren, verwenden wir das Schlüsselwort `struct`. Hier ist ein Beispiel für die Definition einer Struktur, die Informationen über eine Person speichert:
struct Person {
char name[50];
int alter;
float gehalt;
};
Strukturinitialisierung
Nachdem wir eine Struktur definiert haben, können wir eine Instanz dieser Struktur erstellen, indem wir eine Variable vom Typ der Struktur deklarieren. Hier ist ein Beispiel für die Initialisierung einer Instanz der `Person`-Struktur:
struct Person mitarbeiter;
strcpy(mitarbeiter.name, "Max Mustermann");
mitarbeiter.alter = 30;
mitarbeiter.gehalt = 3000.50;
Struktur als Funktionsparameter
Strukturen können als Parameter an Funktionen übergeben werden. Hier ist ein Beispiel für eine Funktion, die eine `Person`-Struktur als Parameter verwendet:
void printPerson(struct Person p) {
printf("Name: %s\n", p.name);
printf("Alter: %d\n", p.alter);
printf("Gehalt: %.2f\n", p.gehalt);
}
Struktur als Funktionsrückgabewert
Strukturen können auch als Rückgabewerte von Funktionen verwendet werden. Hier ist ein Beispiel für eine Funktion, die eine `Person`-Struktur zurückgibt:
struct Person createPerson(char name[], int alter, float gehalt) {
struct Person p;
strcpy(p.name, name);
p.alter = alter;
p.gehalt = gehalt;
return p;
}
Strukturzugriff
Um auf die Felder einer Struktur zuzugreifen, verwenden wir den Punktoperator `.`. Hier ist ein Beispiel für den Zugriff auf das `name`-Feld der `Person`-Struktur:
printf("Name: %s\n", mitarbeiter.name);
Strukturzeiger
Strukturen können auch über Zeiger aufgerufen werden. Hier ist ein Beispiel für die Verwendung eines Zeigers auf eine `Person`-Struktur:
struct Person *ptr = &mitarbeiter;
printf("Name: %s\n", ptr->name);
Struktur in Array
Strukturen können auch in Arrays verwendet werden. Hier ist ein Beispiel für die Definition eines Arrays von `Person`-Strukturen:
struct Person mitarbeiter[3];
strcpy(mitarbeiter[0].name, "Max Mustermann");
mitarbeiter[0].alter = 30;
mitarbeiter[0].gehalt = 3000.50;
strcpy(mitarbeiter[1].name, "Erika Musterfrau");
mitarbeiter[1].alter = 25;
mitarbeiter[1].gehalt = 2500.75;
strcpy(mitarbeiter[2].name, "Hans Müller");
mitarbeiter[2].alter = 35;
mitarbeiter[2].gehalt = 3500.25;
Struktur Zeiger in Array
Strukturen können auch in Arrays von Zeigern verwendet werden. Hier ist ein Beispiel für die Definition eines Arrays von Zeigern auf `Person`-Strukturen:
struct Person *mitarbeiter[3];
mitarbeiter[0] = &mitarbeiter1;
mitarbeiter[1] = &mitarbeiter2;
mitarbeiter[2] = &mitarbeiter3;
strcpy(mitarbeiter1.name, "Max Mustermann");
mitarbeiter1.alter = 30;
mitarbeiter1.gehalt = 3000.50;
strcpy(mitarbeiter2.name, "Erika Musterfrau");
mitarbeiter2.alter = 25;
mitarbeiter2.gehalt = 2500.75;
strcpy(mitarbeiter3.name, "Hans Müller");
mitarbeiter3.alter = 35;
mitarbeiter3.gehalt = 3500.25;
Strukturverwendung
Strukturen sind nützlich, um zusammengehörige Daten zu gruppieren und zu verwalten. Sie können in Funktionen übergeben werden, um mehrere Werte zurückzugeben, oder als Elemente von Arrays oder anderen Strukturen verwendet werden. Hier ist ein Beispiel für die Verwendung einer Struktur in einer Funktion:
void printPerson(struct Person p) {
printf("Name: %s\n", p.name);
printf("Alter: %d\n", p.alter);
printf("Gehalt: %.2f\n", p.gehalt);
}