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.