Généré le 1er janvier 2048 à [Link]
Structures et pointeurs
Sinaly Traoré ∗
DER de Mathématiques et Informatique
Faculté des Sciences et Techniques (FST)
Université des Sciences, des Techniques et des Technologies de Bamako (USTTB)
Licence MPCI - Semestre 2
../../../../Figures/pngs/[Link] ../../../../Figures/jpeg
∗. E-mail : sinatra2usttb@[Link]
BP : E 3206, Bamako, Mali
Sinaly Traoré (USTTB/FST) Structures et pointeurs 1 / 11
Outline
Structures
Sinaly Traoré (USTTB/FST) Structures et pointeurs 2 / 11
Outline
Structures
Sinaly Traoré (USTTB/FST) Structures et pointeurs 3 / 11
Structures
Comme les tableaux, une structure est un type composé et permet aussi de regrouper des
données au sein d’une même entité.
Qu’est ce qu’une structure
Une structure est un ensemble fini d’éléments de types différents.
Chaque élément de la structure est une variable qui s’appelle un champs ou membre.
Les champs d’une structure n’occupent pas nécessairement des zones contigüe dans la
memoire.
utilisation pratique d’une structure
On crée une structure pour représenter :
un objet concrêt
personne, voiture, . . .
un concepte
date, classe, . . .
Sinaly Traoré (USTTB/FST) Structures et pointeurs 4 / 11
Définir un modèle de structure et un objet structure
Pour déclarer un modèle de structure, on utilise la syntaxe suivante
Syntaxe de déclaration d’un model de structure
struct nom
{
type1 membre1;
type2 membre2;
.
.
.
typeN membreN
};
On peut effectuer sur chaque membre de la structure toutes les opérations valides sur des
données de son type
Pour déclarer un objet Obj correspondant à un model de structure struct Model, on
utlise la syntaxe suivante :
struct Model Obj;
Sinaly Traoré (USTTB/FST) Structures et pointeurs 5 / 11
Exemple de déclaration
/*Déclaration d’un modèle de structure représentant un nombre complexe*/
struct complexe
{
float reel;
float imaginaire;
};
/*Déclaration d’un objet correspondant au modèle struct complexe*/
struct complexe z;
Ici, z est une variable de type struct complexe
/*Déclaration d’un modèle de structure représentant une personne*/
struct personne
{
int age;
char nom[20];
char prenom[20];
};
/*Déclaration d’un objet correspondant au modèle struct personne*/
struct personne individu;
Ici, individu est une variable de type struct personne
Sinaly Traoré (USTTB/FST) Structures et pointeurs 6 / 11
Déclarer un objet et un model de structure en même temps
Pour déclarer un objet Obj de type structure correspondant à un modèle Model si celui-ci
n’a pas été déclaré au préalable on procède comme suit :
struct Model
{
type1 membre1;
type2 membre2;
.
.
.
typeN membreN;
} Obj;
Exemple
struct date
{
int jour;
int annee;
char *mois;
} dateNaissance;
Sinaly Traoré (USTTB/FST) Structures et pointeurs 7 / 11
Accès aux champs d’une structure
On accède aux différents membres d’une structure grâce à l’opérateur membre de
structure, noté "."
Pour accéder au membrek d’un objet Obj correspondant à un modèle de structure on
utilise l’expression :
[Link];
Exemple
struct complexe
{
float reel;
float imaginaire;
};
int main()
{
struct complexe z; //déclaration d’une variable de type struct complexe
printf("Saisir la partie reelle et la partie imaginaire\n");
scanf("%f%f",&[Link], &[Link]);
printf("Vous avez choisi le nombre %.2f + %.2fi\n", [Link], [Link]);
}
Sinaly Traoré (USTTB/FST) Structures et pointeurs 8 / 11
Initialisation et affectation d’une structure
Les règles d’initialisation d’une structure lors de sa déclaration sont les mêmes que pour
les tableaux Par exemple, on peut écrire :
struct complexe z={2,3};
avec cette instruction, le champs reel de z sera initialisé à 2 et le champs imaginaire de z
sera initalisé à 3
Noter bien qu’il est possible d’appliquer l’opérateur d’affectation aux structures. Donc, si
Obj1 et Obj2 sont deux variables de type un modèle de structure, on peut écrire :
Obj1=Obj2;
Exemple
int main()
{
struct complexe z1, z2;
. . .
z1=z2;
}
Noter aussi qu’aucune comparaison (==,<,>, ...) n’est possible sur les structures
Sinaly Traoré (USTTB/FST) Structures et pointeurs 9 / 11
Synonymie de type
Grâce au mot-clé typdef on peut donner un synonyme (un nouveau nom lui désignant) à
un type comme suit :
typdef type Synonyme;
Par exemple, on peut donner complexe comme synonyme au type struct complexe en
écrivant :
typdef struct complexe complexe;
Exercice : Etablissement d’un tableau de personnes
Définir une structure datenaissace qui représente une date de nainssance et son
synonyme date.
Définir une structure personne où une personne est représentée par son nom, son
prénom, sa date de naissance et son lieu de naissance. Définir son synonyme
personne.
Définir un tableau de 5 personnes nommé liste.
Ecrire un programme principal qui permet de réaliser les taches suivantes :
demander à l’utilisateur d’initialiser le tableau liste.
présenter chaque personne dans liste en indiquant son numéro, son nom, son
prénom, sa date de naissance et son lieu de naissance.
Sinaly Traoré (USTTB/FST) Structures et pointeurs 10 / 11
Références
Berthomier, E. and Schang, D. (2010).
Le C en 20 heures.
In Libro Veritas-Bibliotheca.
Braquelaire, J.-P. (2005).
Méthodologie de la programmation en C.
Dunod.
Kernighan, B. and Ritchie, D. M. (2017).
The C programming language.
Prentice hall.
Nebra, M. (2015).
Apprenez à programmer en C.
OpenClasssrooms.
Sinaly Traoré (USTTB/FST) Structures et pointeurs 11 / 11