L'utilisation des matrices en C - anna-barry/OCR GitHub Wiki
Le C ne permet de créer des tableaux à "plusieurs dimensions ». Ici tableaux à deux dimensions, communément appelés matrices. Voici la syntaxe qu'il convient d'utiliser pour déclarer un tableau à plusieurs dimensions :
TYPE nom_du_tableau[nombre_elements_dimension_1][nombre_elements_dimension_2][nombre_elements_dimension_3]…;
Cette syntaxe correspond au cas d'un tableau à trois dimensions, mais, naturellement, il suffit de l'adapter pour déclarer un tableau du nombre de dimensions que l'on souhaite. Par exemple, pour déclarer une matrice composée d'entiers, organisés en 10 lignes et 3 colonnes, on écrira ceci : short tab[10][3];
Cela dit, il nous aurait été tout à fait possible d'écrire l'inverse, soit ceci : short tab[3][10];
On aurait aussi obtenu un tableau de 10 lignes et 3 colonnes... organisées autrement en mémoire, mais capable de contenir la même quantité de données. Le C ne défini pas les termes de "ligne" et de "colonne" : c'est à nous, lorsque nous travaillons avec des tableaux, de nous souvenir de ce que nous considérons comme "ligne" et comme "colonne", notamment lorsque nous souhaitons y accéder. Plus simple d’utiliser ça : TYPE nom_du_tableau[nombre_de_lignes][nombre_de_colonnes]; ( comme dans les autres langages )
Pour utiliser un tableau à plusieurs dimensions, on utilisera le même type de syntaxe que pour les listes ; la seule différence sera que l'on utilisera non pas un indice désignant la case dans la liste, mais plusieurs ; à savoir, un par dimension. Par exemple, pour accééer à la seconde case de la troisième ligne d'un tableau à deux dimensions (en considérant que la première dimension correspond à la ligne, et la seconde à la colonne) et y stocker la valeur 123, on utilisera cette syntaxe : short tab[10][3]; // Tableau à 10 lignes et 3 colonnes // (puisque je considère que la première dimension correspond aux lignes, et la seconde aux colonnes)
tab[2][1] = 123; // On enregistre la valeur 123 // à la seconde case de la 3ème ligne
Naturellement, tout comme pour les listes, les indices commencent à 0, et se terminent à nombre_d_éléments moins 1. Ce qui, après tout, est logique, puisqu'une matrice n'est finalement rien de plus, en mémoire, qu'une liste de listes.