Initialiser des Structs
Fait partie de la section Logique & Flux 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.
Défi
FacileCréez un programme C qui démontre l'initialisation d'une structure à l'aide de listes d'initialisation. Votre programme doit :
- Définir une
structnomméeEmployeeavec les membres suivants :- Un entier
idpour stocker l'identifiant de l'employé - Un tableau de caractères
departmentde taille 15 pour stocker le nom du département - Un entier
yearsOfServicepour stocker les années de service - Un flottant
salarypour stocker le salaire de l'employé
- Un entier
- Créer trois variables
Employeeà l'aide de listes d'initialisation avec les données suivantes :emp1: ID 101, département "Engineering", 5 années de service, salaire 75000.50emp2: ID 102, département "Marketing", 3 années de service, salaire 65000.25emp3: ID 103, département "Sales", 8 années de service, salaire 80000.75
- 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]
- Calculer et afficher le salaire total des trois employés au format suivant :
Total Salary: [total] - Calculer et afficher la moyenne des années de service au format suivant :
Average Years of Service: [average]
Ce défi teste votre compréhension de l'initialisation d'une structure à l'aide de listes d'initialisation, dans laquelle vous déclarez et initialisez les 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.
Le résultat attendu 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.33Essayez 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;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Les bases des pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de pointeursL'opérateur d'adresse (&)L'opérateur de déréférencement (*)Pointeurs NULLRécapitulatif : Les bases des pointeurs4Projet : Utilitaire de texte simple
Présentation du projetCompter les caractères7Structures (structs)
Qu'est-ce qu'une Struct ?Déclarer une StructCréer des variables de type StructAccéder aux membres d'une StructInitialiser des StructsRécapitulatif : Struct de données étudiant2Pointeurs et Tableaux
Noms de tableaux comme pointeursÉléments de tableau - PointeursArithmétique des pointeursComparaison de pointeursRécapitulatif : Parcours de tableau par pointeur5Pointeurs et fonctions
Passage par valeurPassage de pointeurs aux fonctionsModifier des variables via des pointeursUn exemple classique : SwapPassage de tableaux aux fonctionsRécapitulatif : Pointeurs comme arguments de fonction3Tableaux de caractères et chaînes
Les chaînes comme tableaux de charLe terminateur nulSaisie de chaînes avec scanfUtilisation de strlen()Utilisation de strcpy()Utilisation de strcat()Utilisation de strcmp()Récapitulatif : Fonctions de base sur les chaînesEntraînez-vous par vous-même : Compilateur C en ligne