Comment déclarer un tableau multidimensionnel initialisé dans la programmation de c

Dans la programmation C, le sombre secret de tableaux multidimensionnels est qu'ils ne existent pas vraiment. En interne, le compilateur voit encore des choses que les dimensions simples - juste une longue gamme complète d'éléments. La notation double (ou triple) support est utilisé pour calculer le bon décalage dans le tableau au moment de la compilation. Cela est bien parce que le compilateur fait le travail.

Vous pouvez voir comment multidimensionnelle tableaux traduisent vieux tableaux ennuyeux réguliers lorsque vous les déclarez déjà initialisé. Par example:

int grille [3] [4] = {5, 4, 4, 5,4, 4, 5, 4,4, 5, 4, 5} -

Le réseau de grille est constitué de trois rangées de quatre points chacun. Comme vient de le montrer, il est déclaré comme une grille et il ressemble à une grille. Une telle déclaration de travaux, aussi longtemps que le dernier élément n'a pas de virgule après. En fait, vous pouvez écrire le tout comme ceci:

int grille [3] [4] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -



Cette déclaration définit encore un tableau multidimensionnel, mais vous pouvez voir comment il est vraiment juste un tableau à une dimension avec deux index. En fait, le compilateur est assez intelligent pour comprendre les dimensions, même quand vous donnez un seul d'entre eux, comme dans cet exemple:

int grille [] [4] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -

Dans la ligne précédente, le compilateur voit les 12 éléments dans une grille de tableau, donc il sait automatiquement qu'il est une matrice 3-en-4 sur la base 4 dans les parenthèses. Ou vous pouvez faire ceci:

int grille [] [6] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -

Dans cet exemple, le compilateur comprendre que vous avez deux rangées de six éléments. Mais l'exemple suivant est tout simplement faux:

int grille [] [] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -

Le compilateur ne va pas pour obtenir mignon. Dans la ligne précédente, il voit un tableau unique de dimension incorrectement déclaré. Les crochets supplémentaires ne sont pas nécessaires.

Exercice 1: Réécrire le code de Tic-Tac-Toe de sorte que le plateau de jeu de tic-tac-toe est initialisée lorsque le tableau est déclaré - y compris en mettant le X dans le bon endroit.

Tic-tac-toe

#include int main () {char tictactoe [3] [3] -int x, y - / * matrice initialiser * / for (x = 0 XLT; 3 x ++) pour (y = 0-YLT; 3-y ++ ) tictactoe [x] [y] = '.'- tictactoe [1] [1] =' X '- / * plateau de jeu d'affichage * / puts ("Prêt à jouer Tic-Tac-Toe?")-for(x=0-xlt;3-x++){for(y=0-ylt;3-y++)printf("%ct",tictactoe[x][y])-putchar('n')-}return(0)-}

» » » » Comment déclarer un tableau multidimensionnel initialisé dans la programmation de c