Menu
Coddy logo textTech

Zugriff auf Struct-Member

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

Jetzt, da du Struct-Variablen erstellen kannst, musst du lernen, wie du mit den darin gespeicherten Daten arbeitest. Der Punktoperator (.) ist dein Schlüssel zum Zugreifen auf die einzelnen Member einer Struct-Variablen und zu deren Ändern.

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

structVariable.memberName

Anhand unseres Point-Strukturbeispiels kannst du sowohl ihre Member lesen als auch in sie schreiben:

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

Erstelle ein C-Programm, das den Zugriff auf Strukturmitglieder und deren Änderung mithilfe des Punktoperators demonstriert. Dein Programm sollte:

  1. Eine struct namens Car mit den folgenden Mitgliedern definieren:
    • Eine Ganzzahl year zum Speichern des Herstellungsjahres
    • Ein Zeichenarray brand der Größe 20 zum Speichern der Automarke
    • Eine Ganzzahl mileage zum Speichern des aktuellen Kilometerstands
    • Eine Gleitkommazahl price zum Speichern des Fahrzeugpreises
  2. Eine Car-Variable namens myCar erstellen
  3. Die folgenden Eingabewerte einlesen und sie mithilfe des Punktoperators den Strukturmitgliedern zuweisen:
    • Eine Ganzzahl für das Jahr einlesen und sie myCar.year zuweisen
    • Eine Zeichenkette für die Marke einlesen und sie myCar.brand zuweisen
    • 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 durchfü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 mithilfe des Punktoperators zum Zugriff auf jedes Mitglied in genau diesem Format ausgeben:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Diese Herausforderung testet dein Verständnis des Punktoperators sowohl zum Lesen aus als auch zum Schreiben in Strukturmitglieder. Du übst das Zuweisen von Werten zu Strukturmitgliedern, das Durchführen arithmetischer Operationen mit ihnen und den Zugriff auf sie zur Ausgabe.

Wenn die Eingabe beispielsweise lautet:

2020
Toyota
50000
25000.50

Deine Ausgabe sollte lauten:

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

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 Logik & Ablauf

Übe selbstständig: Online-C-Compiler