Académique Documents
Professionnel Documents
Culture Documents
LES STRUCTURES
Mme TEMIMI.O
Année Universitaire: 2023/2024
I – Définition
Le type structure permet de regrouper plusieurs données (variables
qui peuvent être de types différents) au sein d'une seule variable,
appelée structure.
Chaque élément de la structure est appelé champ ou membre.
Exemples:
✓Nombre_complexe : composé de 2 variables , pR (float), pIm (float)
✓Date : composée de 3 variables , jour (int), mois (int), année (int)
✓Personne : composée d’un nom (chaîne de caractères), un prénom
(chaîne de caractères) , num carte d’identité (int)et une date
naissance (Date).
Champs de la variable p1
1ère Génie Info A&B 4
II – Déclaration
2ème méthode (avec « typedef »):
Permet d'indiquer au compilateur qu'il doit considérer notre structure
comme un type (comme int, float, etc.). Cette méthode permet de s’en
passer du mot clé struct à chaque fois que la structure est utilisée.
Syntaxe:
typedef struct {
Type_champ1 nom_champ1 ;
Type_champ2 nom_champ2 ;
Type_champ3 nom_champ3 ;
…
} nom_structure ;
typedef struct{
char nom [20];
char prénom[20];
int cin;
Date d;
} Etudiant;
nom_structure nom_variable ;
Exemple :
typedef struct {
int jour ;
int mois ;
int annee ;
} Date;
nom_variable_structurée.nom_champ
1ère Génie Info A&B 11
III - Utilisation d'une structure
III.3.utilisation des champs d'une structure
➢Initialisation des champs par utilisation des fonctions scanf, getchar, gets.
scanf("%d", &E1.d.jour); // saisit le jour correspondant à une date de la
//variable structurée E1 de type Etudiant
struct complexe *
définit un pointeur qui pointera un espace mémoire contenant un objet de
type struct complexe.
Pour accéder aux champs d’une structure à partir d’un pointeur associé à
une variable structurée, on écrit:
(*nom_de_variable). nom_du_champ
Ou bien
nom_de_variable ->nom_du_champ.
1ère Génie Info A&B 16
VI. Pointeur de structure
Exemple:
Reprenons la fonction Somme mais avec le type void comme type de resultat:
void Somme(struct complexe C1, struct complexe C2, struct complexe *C)
{
(*C).reel=C1.reel+C2.reel;
Paramètre passé par
// C->reel=C1.reel+C2.reel; adresse
(*C).imag=C1.imag+C2.imag;
//C->imag=C1.imag+C2.imag;
Exemple: