📦 C — Les Tableaux

Stocker et manipuler plusieurs variables ensemble

📚 Qu'est-ce qu'un tableau ?

🎯 Définition
Un tableau (array) est une variable spéciale qui peut contenir plusieurs valeurs du même type.
  • Les valeurs sont stockées côte à côte en mémoire (bloc contigu).
  • La taille du tableau est fixée à la création et ne peut pas changer (en C statique).
💻 Exemple Visuel
int notes[5]; // Un tableau de 5 entiers

// En mémoire, cela ressemble à ça :
// [ 12 ] [ 15 ] [ 08 ] [ 20 ] [ 10 ]
//   ^      ^      ^      ^      ^
// Index 0 Index 1 Index 2 Index 3 Index 4

📝 Déclaration et Initialisation

Créer un tableau
Syntaxe : type nom_du_tableau[taille];
💻 Exemples de déclaration
// 1. Déclarer sans initialiser (valeurs inconnues/aléatoires au début !)
int scores[10]; 

// 2. Déclarer et remplir directement
int nombres[3] = {10, 20, 30};

// 3. Laisser le compilateur deviner la taille
float prix[] = {10.5, 99.99, 5.0}; // Taille automatique : 3
⚠️ Attention : Si vous déclarez int tab[5]; sans l'initialiser, il contient ce qui traînait en mémoire ("garbage values"). Initialisez-le toujours si possible !

🔍 Accéder et Modifier

Les Indices (Index)
Pour accéder à une case, on utilise son indice entre crochets [ ].

Règle d'Or : Les indices commencent toujours à 0 !
  • Premier élément : tab[0]
  • Dernier élément (pour taille N) : tab[N-1]
💻 Manipulation
int tab[3] = {10, 20, 30};

printf("%d", tab[0]); // Affiche 10
printf("%d", tab[2]); // Affiche 30

// Modifier une valeur
tab[1] = 50; 
// Le tableau est maintenant : {10, 50, 30}

🔄 Parcourir un Tableau

La boucle FOR
Comme on connaît la taille du tableau, la boucle for est l'outil parfait pour visiter chaque case une par une.
💻 Afficher tout le tableau
int notes[4] = {12, 15, 8, 19};

// i va de 0 à 3 (car i < 4)
for (int i = 0; i < 4; i++) {
    printf("Note numéro %d : %d\n", i, notes[i]);
}
🚫 Erreur fatale : Ne jamais dépasser la taille !
Si vous écrivez tab[4] dans un tableau de taille 4 (indices 0 à 3), votre programme plantera (Segmentation Fault) ou aura un comportement imprévisible.