Menu
CoddyTech

Zugriff auf Struct-Member

Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 41 von 63.

Nachdem du struct-Variablen erstellen kannst, musst du lernen, mit den darin gespeicherten Daten zu arbeiten. Der Punktoperator (.) ist der Schlüssel zum Zugriff auf die einzelnen Mitglieder einer struct-Variablen und zu deren Änderung.

Die Syntax für den Zugriff auf Struct-Mitglieder ist einfach:

structVariable.memberName

Mit unserem Beispiel für die Struktur Point kannst du sowohl ihre Member lesen als auch in sie schreiben:

struct Point p1;

// Schreiben in Strukturmitglieder
p1.x = 10;
p1.y = 20;

// Lesen aus Strukturmitgliedern
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

Der Punktoperator funktioniert genauso wie der Zugriff auf jede andere Variable – du kannst ihn in Zuweisungen, arithmetischen Operationen, Funktionsaufrufen oder überall dort verwenden, wo du eine gewöhnliche Variable dieses Typs verwenden würdest. Jedes Mitglied verhält sich wie eine unabhängige Variable seines deklarierten Typs, sodass du die Daten der Struktur auf organisierte und intuitive Weise bearbeiten kannst.

challenge icon

Aufgabe

Einfach

Erstelle ein C-Programm, das den Zugriff auf und die Änderung von struct-Mitgliedern mit dem Punktoperator demonstriert. Dein Programm soll:

  1. Ein struct namens Car mit den folgenden Mitgliedern definieren:
    • Eine Ganzzahl year, um das Herstellungsjahr zu speichern
    • Ein Zeichenarray brand mit der Größe 20, um die Automarke zu speichern
    • Eine Ganzzahl mileage, um den aktuellen Kilometerstand zu speichern
    • Eine Gleitkommazahl price, um den Preis des Autos zu speichern
  2. Eine Car-Variable namens myCar erstellen
  3. Die folgenden Eingabewerte einlesen und sie den struct-Mitgliedern mithilfe des Punktoperators zuweisen:
    • Eine Ganzzahl für das Jahr einlesen und sie myCar.year zuweisen
    • strcpy() nach myCar.brand kopieren (einem Array kann mit = kein Wert zugewiesen werden)
    • Eine Ganzzahl für den Kilometerstand einlesen und sie myCar.mileage zuweisen
    • Eine Gleitkommazahl für den Preis einlesen und sie myCar.price zuweisen
  4. Nach dem Einlesen aller Werte die folgenden Operationen ausführen:
    • Den Kilometerstand mithilfe von myCar.mileage += 1000; um 1000 erhöhen
    • Den Preis mithilfe von myCar.price -= 500.0; um 500.0 verringern
  5. Die Fahrzeuginformationen ausgeben und dabei mit dem Punktoperator auf jedes Mitglied zugreifen. Verwende genau dieses Format:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Bei dieser Herausforderung kannst du dein Verständnis des Punktoperators für das Lesen und Schreiben von struct-Mitgliedern unter Beweis stellen. Du übst, struct-Mitgliedern Werte zuzuweisen, arithmetische Operationen mit ihnen durchzuführen und für die Ausgabe auf sie zuzugreifen.

Wenn die Eingabe zum Beispiel so aussieht:

2020
Toyota
50000
25000.50

Deine Ausgabe sollte so aussehen:

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

Probier es selbst

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

// TODO: Definiere hier die Car-Struktur

int main() {
    // TODO: Erstelle eine Car-Variable namens myCar
    
    // Eingabewerte einlesen
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Weise die Eingabewerte den Strukturmitgliedern mit dem Punktoperator zu
    
    // TODO: Ändere Kilometerstand und Preis wie angegeben
    
    // TODO: Gib die Fahrzeugdetails mit dem Punktoperator aus
    printf("Car Details:\n");
    // Gib 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 Logik & Ablauf

Übe selbstständig: Online-C-Compiler