Cómo declarar una matriz multidimensional inicializado en la programación c
En la programación C, el oscuro secreto de matrices multidimensionales es que en realidad no existen. Internamente, el compilador todavía ve las cosas como las dimensiones individuales - sólo una larga gama completa de elementos. La notación doble (o triple) soporte se utiliza para calcular la posición de la matriz en tiempo de compilación adecuada. Eso está bien porque el compilador hace el trabajo.
Usted puede ver cómo multidimensional arrays se traducen en arrays aburridas viejas regulares cuando se declaran ya inicializado. Por ejemplo:
int rejilla [3] [4] = {5, 4, 4, 5,4, 4, 5, 4,4, 5, 4, 5} -
El grid array consiste en tres filas de cuatro puntos cada uno. Como se acaba de mostrar, está declarada como una cuadrícula y se ve como una cuadrícula. Tal declaración funciona, siempre y cuando el último elemento no tiene una coma después de ella. De hecho, usted puede escribir todo el asunto de esta manera:
int rejilla [3] [4] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -
Esta declaración todavía define una matriz multidimensional, pero se puede ver cómo es en realidad sólo una matriz unidimensional con índices duales. De hecho, el compilador es lo suficientemente inteligente como para saber las dimensiones, incluso cuando se le da sólo uno de ellos, como en este ejemplo:
int rejilla [] [4] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -
En la línea anterior, el compilador ve a los 12 elementos en una rejilla de matriz, por lo que sabe automáticamente que se trata de una matriz de 3 por 4 en base al 4 en los soportes. O usted puede hacer esto:
int rejilla [] [6] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -
En este ejemplo, el compilador averiguar que tiene dos filas de seis elementos. Pero el siguiente ejemplo es simplemente incorrecto:
int rejilla [] [] = {5, 4, 4, 5, 4, 4, 5, 4, 4, 5, 4, 5} -
El compilador no se va a poner linda. En la línea anterior, se ve una matriz unidimensional indebidamente declarada. No son necesarios los corchetes adicionales.
Ejercicio 1: Vuelva a escribir el código de Tic-Tac-Toe para que el tablero de juego tic-tac-toe se inicializa cuando la matriz se declara - incluyendo poner la X en el lugar adecuado.
TIC-TAC-TOE
#include int main () {tictactoe char [3] [3] -INT x, y - / * inicializar la matriz * / for (x = 0-xlt; 3-x ++) para (y = 0-YLT; 3-y ++ ) tictactoe [x] [y] = '.'- tictactoe [1] [1] =' X '- / * tablero de juego pantalla * / puts ("Listo para jugar Tic-Tac-Toe?")-for(x=0-xlt;3-x++){for(y=0-ylt;3-y++)printf("%ct",tictactoe[x][y])-putchar('n')-}return(0)-}