Menu
Coddy logo textTech

Initialisieren von Structs

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

Obwohl du Strukturvariablen erstellen und ihren Mitgliedern anschließend einzeln Werte zuweisen kannst, bietet C eine bequemere Möglichkeit, Anfangswerte festzulegen. Du kannst eine Strukturvariable bei ihrer Deklaration mithilfe einer in geschweifte Klammern eingeschlossenen Initialisierungsliste initialisieren.

Die Syntax für die Initialisierung einer Struktur lautet:

struct StructureName variableName = {value1, value2, ...};

Am Beispiel unserer Point-Struktur kannst du sie in einer einzigen übersichtlichen Zeile deklarieren und initialisieren:

struct Point p1 = {10, 20};

Dies erstellt eine Point-Variable namens p1, wobei x auf 10 und y auf 20 gesetzt wird. Die Werte in der Initialisierungsliste werden den Strukturmitgliedern in der Reihenfolge zugewiesen, in der sie in der Strukturdefinition deklariert wurden.

Diese Initialisierungsmethode ist nicht nur prägnanter als separate Zuweisungen, sondern stellt auch sicher, dass deine Struktur mit sinnvollen Werten statt mit zufälligen Datenmüllwerten beginnt. Sie ist besonders nützlich, wenn du die Anfangswerte bereits zur Kompilierzeit kennst und effizient sofort einsatzbereite Strukturvariablen erstellen möchtest.

challenge icon

Aufgabe

Einfach

Erstelle ein C-Programm, das die Initialisierung von Strukturen mithilfe von Initialisierungslisten demonstriert. Dein Programm sollte:

  1. Eine struct namens Employee mit den folgenden Mitgliedern definieren:
    • Eine Ganzzahl id zum Speichern der Mitarbeiter-ID
    • Ein Zeichen-Array department mit der Größe 15 zum Speichern des Abteilungsnamens
    • Eine Ganzzahl yearsOfService zum Speichern der Dienstjahre
    • Eine Gleitkommazahl salary zum Speichern des Gehalts des Mitarbeiters
  2. Drei Employee-Variablen mithilfe von Initialisierungslisten mit den folgenden Daten erstellen:
    • emp1: ID 101, Abteilung „Engineering“, 5 Dienstjahre, Gehalt 75000.50
    • emp2: ID 102, Abteilung „Marketing“, 3 Dienstjahre, Gehalt 65000.25
    • emp3: ID 103, Abteilung „Sales“, 8 Dienstjahre, Gehalt 80000.75
  3. Die Informationen zu jedem Mitarbeiter in diesem exakten Format ausgeben:
    • Employee 1:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 2:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 3:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
  4. Das Gesamtgehalt aller drei Mitarbeiter berechnen und im Format Total Salary: [total] ausgeben
  5. Die durchschnittlichen Dienstjahre berechnen und im Format Average Years of Service: [average] ausgeben

Diese Aufgabe prüft dein Verständnis der Initialisierung von Strukturen mithilfe von Initialisierungslisten, bei der du Strukturvariablen in einer einzigen Zeile deklarierst und initialisierst. Die Werte in der Initialisierungsliste müssen in derselben Reihenfolge angegeben werden, in der die Mitglieder in der Strukturdefinition deklariert wurden.

Deine erwartete Ausgabe sollte wie folgt aussehen:

Employee 1:
ID: 101
Department: Engineering
Years of Service: 5
Salary: 75000.50
Employee 2:
ID: 102
Department: Marketing
Years of Service: 3
Salary: 65000.25
Employee 3:
ID: 103
Department: Sales
Years of Service: 8
Salary: 80000.75
Total Salary: 220001.50
Average Years of Service: 5.33

Probier es selbst

#include <stdio.h>

// TODO: Definieren Sie hier die Employee-Struktur

int main() {
    // TODO: Erstellen Sie drei Employee-Variablen mithilfe von Initialisierungslisten
    
    // TODO: Informationen für jeden Mitarbeiter ausgeben
    
    // TODO: Gesamtgehalt und durchschnittliche Dienstjahre berechnen und ausgeben
    
    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