Definition und Verwendung von Strukturen (C Programmiersprache)

Aus ahrensburg.city
Version vom 23. Januar 2025, 15:07 Uhr von Thorsten (Diskussion | Beiträge) (// via Wikitext Extension for VSCode)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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);
}