Menu
Coddy logo textTech

Zugriff auf Struct-Member

Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 41 von 63.

Nachdem Sie nun Struct-Variablen erstellen können, müssen Sie lernen, wie Sie mit den darin gespeicherten Daten arbeiten. Der Punktoperator (.) ist Ihr Schlüssel zum Zugriff auf und zur Änderung der einzelnen Member einer Struct-Variable.

Die Syntax für den Zugriff auf Struct-Member ist unkompliziert:

structVariable.memberName

Unter Verwendung unseres Point-struct-Beispiels können Sie dessen Member sowohl lesen als auch beschreiben:

struct Point p1;

// Schreiben in struct-Member
p1.x = 10;
p1.y = 20;

// Lesen von struct-Membern
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

Der Punkt-Operator funktioniert genau wie der Zugriff auf jede andere Variable – Sie können ihn in Zuweisungen, arithmetischen Operationen, Funktionsaufrufen oder überall dort verwenden, wo Sie eine reguläre Variable dieses Typs verwenden würden. Jedes Mitglied verhält sich wie eine unabhängige Variable seines deklarierten Typs, was es Ihnen ermöglicht, die Daten des Structs auf organisierte und intuitive Weise zu manipulieren.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein C-Programm, das den Zugriff auf und das Ändern von Struct-Elementen mithilfe des Punktoperators demonstriert. Ihr Programm sollte:

  1. Definieren Sie ein struct namens Car mit den folgenden Elementen:
    • Ein Integer year, um das Baujahr zu speichern
    • Ein Zeichen-Array (char array) brand mit der Größe 20, um die Automarke zu speichern
    • Ein Integer mileage, um den aktuellen Kilometerstand zu speichern
    • Ein Float price, um den Preis des Autos zu speichern
  2. Erstellen Sie eine Car-Variable namens myCar
  3. Lesen Sie die folgenden Eingabewerte ein und weisen Sie diese den Struct-Elementen mithilfe des Punktoperators zu:
    • Lesen Sie einen Integer für das Jahr und weisen Sie ihn myCar.year zu
    • Lesen Sie einen String für die Marke und weisen Sie ihn myCar.brand zu
    • Lesen Sie einen Integer für den Kilometerstand und weisen Sie ihn myCar.mileage zu
    • Lesen Sie einen Float für den Preis und weisen Sie ihn myCar.price zu
  4. Führen Sie nach dem Einlesen aller Werte die folgenden Operationen aus:
    • Erhöhen Sie den Kilometerstand um 1000 mit myCar.mileage += 1000;
    • Verringern Sie den Preis um 500.0 mit myCar.price -= 500.0;
  5. Geben Sie die Informationen des Autos unter Verwendung des Punktoperators für den Zugriff auf jedes Element in genau diesem Format aus:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Diese Herausforderung testet Ihr Verständnis des Punktoperators sowohl für das Lesen von als auch für das Schreiben in Struct-Elemente. Sie üben das Zuweisen von Werten zu Struct-Elementen, das Ausführen arithmetischer Operationen mit ihnen und den Zugriff auf sie für die Ausgabe.

Zum Beispiel, wenn die Eingabe wie folgt lautet:

2020
Toyota
50000
25000.50

Sollte Ihre Ausgabe wie folgt aussehen:

Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50

Spickzettel

Der Punktoperator (.) wird verwendet, um auf einzelne Elemente einer Struct-Variable zuzugreifen und diese zu ändern.

Syntax für den Zugriff auf Struct-Elemente:

structVariable.memberName

Beispiel für das Lesen von und Schreiben in Struct-Elemente:

struct Point p1;

// Writing to struct members
p1.x = 10;
p1.y = 20;

// Reading from struct members
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

Der Punktoperator kann in Zuweisungen, arithmetischen Operationen, Funktionsaufrufen oder überall dort verwendet werden, wo Sie eine reguläre Variable dieses Typs verwenden würden. Jedes Element verhält sich wie eine unabhängige Variable seines deklarierten Typs.

Probier es selbst

#include <stdio.h>
#include <string.h>

// TODO: Definieren Sie hier das Car-Struct

int main() {
    // TODO: Erstellen Sie eine Car-Variable namens myCar
    
    // Eingabewerte lesen
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Weisen Sie die Eingabewerte den Struct-Elementen mit dem Punkt-Operator zu
    
    // TODO: Ändern Sie den Kilometerstand und den Preis wie angegeben
    
    // TODO: Geben Sie die Fahrzeugdetails mit dem Punkt-Operator aus
    printf("Car Details:\n");
    // Geben Sie hier Jahr, Marke, Kilometerstand und Preis aus
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow