Structures
Un autre moyen que le tableau de grouper des variables ensemble est la structure. Contrairement à un tableau où tous les éléments ont le même type, les éléments d’une structure peuvent avoir des types hétéroclites, y compris des tableaux, autres structures (differentes de soi même ou d’un sur-ensemble de soi-même), ainsi que des pointeurs sur d’autres structures (y compris soi même, ce qui est utile pour les listes chaînées) et tout type d’objet, y compris des pointeurs sur des fonctions.
Une structute doit être déclarée avant de pouvoir être utilisée
#include<stdio.h>
main() {
struct toto {
int a;
char b[2];
struct tata {
int a;
} tata;
struct toto * pautre;
struct tata * ptata;
}
struct toto objet = {
42, {'a', 'b'}, { 24 }, 0, 0
};
struct toto objet2 = {
84, {'c', 'd'}, { 42 }, &objet, &objet.tata
}
printf(
"Objet 1 : %d %c\n",
objet.a, objet.b[0]
); // 42, a
printf(
"Objet 2 : %d, %d",
objet2.a, objet2.ptata.a
); // 84, 24
}
Chaque champ d’une structure doit avoir un nom.
Le point .
sert a reférencer les different champs de la structure par leur nom.
et l’union.