Menu
Coddy logo textTech

Initialiser des Structs

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 42 sur 63.

Bien que vous puissiez créer des variables de type struct puis affecter des valeurs à leurs membres individuellement, le langage C fournit un moyen plus pratique de définir des valeurs initiales. Vous pouvez initialiser une variable struct au moment de la déclaration en utilisant une liste d'initialisation entourée d'accolades.

La syntaxe pour l'initialisation d'une structure est :

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

En utilisant notre exemple de structure Point, vous pouvez la déclarer et l'initialiser en une seule ligne propre :

struct Point p1 = {10, 20};

Cela crée une variable Point nommée p1 avec x défini sur 10 et y défini sur 20. Les valeurs de la liste d'initialisation sont affectées aux membres de la structure dans l'ordre dans lequel ils ont été déclarés dans la définition de la structure.

Cette approche d'initialisation est non seulement plus concise que des affectations séparées, mais elle garantit également que votre struct commence avec des valeurs significatives plutôt que des données résiduelles aléatoires. Elle est particulièrement utile lorsque vous connaissez les valeurs initiales au moment de la compilation et que vous souhaitez créer efficacement des variables de type struct prêtes à l'emploi.

challenge icon

Défi

Facile

Créez un programme en C qui démontre l'initialisation de structures à l'aide de listes d'initialisation. Votre programme doit :

  1. Définir une struct nommée Employee avec les membres suivants :
    • Un entier id pour stocker l'ID de l'employé
    • Un tableau de caractères department de taille 15 pour stocker le nom du département
    • Un entier yearsOfService pour stocker les années de service
    • Un flottant salary pour stocker le salaire de l'employé
  2. Créer trois variables Employee en utilisant des listes d'initialisation avec les données suivantes :
    • emp1 : ID 101, département "Engineering", 5 ans de service, salaire 75000.50
    • emp2 : ID 102, département "Marketing", 3 ans de service, salaire 65000.25
    • emp3 : ID 103, département "Sales", 8 ans de service, salaire 80000.75
  3. Afficher les informations de chaque employé dans ce format exact :
    • 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. Calculer et afficher le salaire total des trois employés au format : Total Salary: [total]
  5. Calculer et afficher la moyenne des années de service au format : Average Years of Service: [average]

Ce défi teste votre compréhension de l'initialisation des structures à l'aide de listes d'initialisation, où vous déclarez et initialisez des variables de structure sur une seule ligne. Les valeurs de la liste d'initialisation doivent être fournies dans le même ordre que celui dans lequel les membres ont été déclarés dans la définition de la structure.

Votre sortie attendue doit être :

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

Aide-mémoire

Vous pouvez initialiser une variable de structure au moment de la déclaration en utilisant une liste d'initialisation entourée d'accolades :

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

Exemple avec une structure Point :

struct Point p1 = {10, 20};

Les valeurs de la liste d'initialisation sont affectées aux membres de la structure dans l'ordre où ils ont été déclarés dans la définition de la structure. Cette approche est plus concise que des affectations séparées et garantit que votre structure commence avec des valeurs significatives plutôt qu'avec des données résiduelles aléatoires.

Essayez vous-même

#include <stdio.h>

// TODO: Définir la structure Employee ici

int main() {
    // TODO: Créer trois variables Employee en utilisant des listes d'initialisation
    
    // TODO: Afficher les informations pour chaque employé
    
    // TODO: Calculer et afficher le salaire total et la moyenne des années de service
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow