Maîtriser les structures en C : Définition, variables, accès et exemples avancés
Maîtriser les structures en C
Apprenez à définir, créer et utiliser les structures en C avec des exemples clairs et des bonnes pratiques.
Qu'est-ce qu'une structure en C ?
Une struct (structure) est un type de données composite qui regroupe des variables de types différents sous un seul nom. C'est la base pour créer des structures de données complexes en C.
Définition d'une structure
Avant de pouvoir créer des variables d'un type struct, vous devez définir le type. Le mot-clé struct introduit la définition :
struct structureName {
dataType member1;
dataType member2;
…
};
Exemple :
struct Person {
char name[50];
int citNo;
float salary;
};
Cela crée un nouveau type appelé struct Person. Vous pouvez maintenant déclarer des variables de ce type.
Création de variables de structure
La définition d'un type struct n'alloue pas de mémoire. Pour l'utiliser, déclarez des variables :
struct Person {
// membres
};
int main() {
struct Person person1, person2, p[20];
return 0;
}
Alternativement, combinez la définition et la déclaration de variables :
struct Person {
// membres
} person1, person2, p[20];
person1etperson2sont des variables individuelles de typestruct Person.pest un tableau de 20 instances destruct Person.
Accès aux membres d'une structure
Deux opérateurs permettent d'accéder aux membres :
.– Opérateur d'accès aux membres.->– Opérateur d'accès aux membres via pointeur (couvert dans un tutoriel séparé).
Pour lire ou modifier le salary de person2 :
person2.salary
Exemple 1 : Utilisation d'une structure en C
#include <stdio.h>
#include <string.h>
struct Person {
char name[50];
int citNo;
float salary;
} person1;
int main() {
strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1.salary = 2500;
printf("Nom : %s\n", person1.name);
printf("Numéro de citoyenneté : %d\n", person1.citNo);
printf("Salaire : %.2f", person1.salary);
return 0;
}
Sortie
Nom : George Orwell Numéro de citoyenneté : 1984 Salaire : 2500.00
Notez que strcpy() copie la chaîne dans le tableau char de taille fixe car l'opérateur d'assignation ne peut pas être utilisé directement avec les tableaux.
Utilisation de typedef avec les structures
Le mot-clé typedef crée un alias pour un type, simplifiant les déclarations :
typedef struct Distance {
int feet;
float inch;
} distances;
int main() {
distances d1, d2;
}
Sans typedef, vous écririez :
struct Distance d1, d2;
Exemple 2 : Alias en pratique
#include <stdio.h>
#include <string.h>
typedef struct Person {
char name[50];
int citNo;
float salary;
} person;
int main() {
person p1;
strcpy(p1.name, "George Orwell");
p1.citNo = 1984;
p1.salary = 2500;
printf("Nom : %s\n", p1.name);
printf("Numéro de citoyenneté : %d\n", p1.citNo);
printf("Salaire : %.2f", p1.salary);
return 0;
}
Sortie
Nom : George Orwell Numéro de citoyenneté : 1984 Salaire : 2500.00
Structures imbriquées
Les structures peuvent contenir d'autres structures, permettant une modélisation hiérarchique des données :
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integers;
} num1, num2;
Pour définir imag de num2 à 11 :
num2.comp.imag = 11;
Exemple 3 : Structures imbriquées en action
#include <stdio.h>
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integer;
} num1;
int main() {
num1.comp.imag = 11;
num1.comp.real = 5.25;
num1.integer = 6;
printf("Partie imaginaire : %d\n", num1.comp.imag);
printf("Partie réelle : %.2f\n", num1.comp.real);
printf("Entier : %d", num1.integer);
return 0;
}
Sortie
Partie imaginaire : 11 Partie réelle : 5.25 Entier : 6
Pourquoi utiliser les structures en C ?
Supposons que vous ayez besoin de stocker le nom, le numéro de citoyenneté et le salaire d'une personne. Sans structures, vous devriez créer des variables séparées pour chaque champ pour chaque personne, ce qui mène rapidement à la duplication de code et à la confusion. Les structures encapsulent les données liées en une seule unité logique, favorisant un code plus propre et une maintenance plus facile.
Prochaines étapes
- Structures et pointeurs
- Passage de structures aux fonctions
Langue C
- C# Hello World — Construire votre première application C#
- Comprendre les mots-clés et identificateurs C# : règles, listes et bonnes pratiques
- Maîtriser les variables C# et types de données primitifs : guide complet
- Opérateurs C# — Guide complet des opérateurs en C#
- Maîtriser les opérateurs bit à bit et de décalage en C# : Guide complet
- Fondamentaux C# : Entrées et sorties essentielles
- Expressions, instructions et blocs C# : Guide complet avec exemples pratiques
- Maîtriser les commentaires C# : Types, bonnes pratiques et documentation XML
- Maîtriser l'instruction Switch C# : Syntaxe, exemples et bonnes pratiques