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;
};

Table des matières 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};

Table des matières 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 &...

Document créé le 21/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/c-structure.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.