Eléments de base du langage C - Les structures

Index de l'article


Les structures

 

Une structure nous permet de désigner sous un seul nom un ensemble de valeurs pouvant être de type différent. Les éléments d'une structure sont appelés des champs. L'accès à chaque élément de la structure se fera par son nom au sein de la structure.

 

Déclaration

 

struct nom {

 

type1   champ1;

 

type2   champ2;

 

.       .

 

.       .

 

type n champ n;

 

}

 

Exemple 1

 

struct enreg {

 

int     numero;

 

int     qte;

 

float   prix;

 

}

 

structenreg art;

 

Exemple 2

 

struct enreg {

 

int     numero;

 

int     qte;

 

float   prix;

 

}  art;

 

Utilisation d'une structure

 

En C, on peut manipuler une structure de deux manières:

  • En travaillant individuellement sur chacun de ces champs.
  • En travaillant de manière globale sur l'ensemble de la structure.

Utilisation des champs d'une structure

 

Chaque champ d'une structure peut être manipulé comme n'importe quelle variable du type correspondant. La désignation d'un champ se note en faisant suivre le nom de la variable structure de l'opérateur "." suivi du nom du champ tel qu'il a été défini dans la structure.

Exemple

 

struct op {

 

int a;

 

float b;

 

} ;

 

struct op x;

 

x.a=2;

 

printf("%e", x.b);

 

scanf("%e", &x.b);

 

x.a++;

 

Utilisation globale d'une structure

 

Il est possible d'affecter à une structure le contenu d'une autre structure définie à partir du même modèle.
Exemple:
struct op x,y; x=y
Il est possible d'initialiser une structure lors de sa déclaration.
Exemple:
struct op A={10, 12.5};

 

Le typedef

 

Le typedef permet de simplifier la déclaration d'un type c'est-à-dire définir les synonymes ou renommer les types.
Exemple d'utilisation du typedef
typedef int entier
entier x,y;

typedef int*ptr
ptr *p1, *p2;

Exemple

typedef struct enreg {
int numero;
int qte;
float prix;
} S_enreg;

 

Les structures et les objets composés

 

Structure comportant des tableaux

 

struct persoone {

 

char nom[20];

 

char prenom[20];

 

int age;

 

} ;

 

Tableau comportant des structures

 

struct point  {

 

char nom;

 

int X;

 

int Y;

 

} ;

 

struct point courbe[50];

 

int i;

 

Exercices

 

Exercice 1

Un point est caractérisé par son nom, les coordonnées X, Y.
Ecrire un programme en C qui utilise la déclaration du type point pour créer un vecteur de 10 points. Ce programme:

  • doit lire un vecteur de 10 points
  • doit ajouter un point à la fin du vecteur
  • doit supprimer un point donné de vecteur
  • doit afficher tous les points du vecteur.

Exercice 2

Chaque produit est caractérisé par son code, son libellé, le prix unitaire, la quantité en stocke.

  1. Donnez une déclaration
    • D'n produit
    • D'un vecteur de produit
  2. Ecrire un programme en C
    • qui permet de lire un vecteur de 10 produits
    • qui affiche la liste des produits dont le prix unitaire est supérieur à 1000
    • qui affiche le libellé du produit qui a la plus grande quantité.
    • qui permet d'afficher la liste de tous les produits dans l'ordre alphabétique des libellés