Les structures en C

Nous avons vu qu'il existe différents types de données, et que pour une variable, nous devons déclarer le type de données qu'elle pourait contenir.

Mais il existe des situations où nous sommes ammenés à traiter un ensemble de données de types différents, en un seul bloc.
Un exemple simple est le traitement des données relatives à un individu:
Nom: Agessé, Prénom: Leng, Année de naissance: 1970
Le nom et le prénom sont des chaînes de caractères, et l'année de naissance est un entier.

Autre exemple, le traitement des dates. Prenons la forme "Lundi 20 janvier 2003":

structure date

struct date
{
char jour_semaine;
int jour;
char mois;
int annee;
};

Contents Haut

Remarques :

  • Le mot clé struct permet la déclaration d'une structure composée des variables déclarées entre les accolades.
  • Le mot clé struct est suivi d'un mot représentatif que l'on appelle l'étiquette de la structure.
  • Cette instruction déclare donc une structure d'étiquette "date", composée de deux chaînes de caractères et de deux entiers.
  • Comme la déclaration de la structure date n'est pas suivie d'une ou de plusieurs variables, elle décrit simplement un modèle, un type de structure.
    Aucun espace mémoire n'est donc réservé dans ce cas.

initialisations

struct date a{"Lundi",20,"janvier",2003};
struct date b{"Samedi",19,"octobre",1996};

Contents Haut

Accès aux éléments

Les différents éléments de la structure sont appellés "membres".

Syntaxe de l'accès à un membre

nom_de_structure.membre

Exemple:

Impression d'un membre

Après avoir initialisé notre structure, nous pouvons introduire l'instruction suivante :

printf("\nAnnee: %d",&a.annee);

Ce qui affiche :

Annee: 2003
|

Nous pouvons remarquer l'emploi de l'adresse par l'opérateur &...

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 21/01/2003, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/c-structure.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.