elementos en la fi la 0 tienen todos un primer subíndice de
0
, y los nombres de los elementos en la columna 3
tienen un segundo subíndice de
3
.
Arreglos de arreglos unidimensionales
Al igual que los arreglos unidimensionales, los arreglos multidimensionales pueden inicializarse mediante iniciali-
zadores de arreglos en las declaraciones. Un arreglo bidimensional
b
con dos fi las y dos columnas podría declararse
e inicializarse con
inicializadores de arreglos anidados
, como se muestra a continuación:
int
b[ ] [ ] = { {
1
,
2
}, {
3
,
4
} };
Los valores del inicializador se agrupan por fi la entre llaves. Así,
1
y
2
inicializan a
b[ 0 ][ 0 ]
y
b[ 0 ][ 1 ]
,
respectivamente;
3
y
4
inicializan a
b[ 1 ][ 0 ]
y
b[ 1 ][ 1 ]
, respectivamente. El compilador cuenta el núme-
ro de inicializadores de arreglos anidados (representados por conjuntos de llaves dentro de las llaves externas) en
la declaración del arreglo, para determinar el número de fi las en el arreglo
b
. El compilador cuenta los valores
inicializadores en el inicializador de arreglos anidado de una fi la, para determinar el número de columnas en esa
fi la. Como veremos en unos momentos, esto signifi ca que las fi las pueden tener distintas longitudes.
Los arreglos multidimensionales se mantienen como arreglos de arreglos unidimensionales. Por lo tanto, el
arreglo
b
en la declaración anterior está realmente compuesto de dos arreglos unidimensionales separados: uno
que contiene los valores en la primera lista inicializadora anidada
{ 1, 2 }
y uno que contiene los valores en la
segunda lista inicializadora anidada
{ 3, 4 }
. Así, el arreglo
b
en sí es un arreglo de dos elementos, cada uno de
los cuales es un arreglo unidimensional de valores
int
.
Arreglos bidimensionales con fi las de distintas longitudes
La forma en que se representan los arreglos multidimensionales los hace bastante fl exibles. De hecho, las longitu-
des de las fi las en el arreglo
b
no tienen que ser iguales. Por ejemplo,
int
b[ ][ ] = { {
1
,
2
}, {
3
,
4
,
5
} };
crea el arreglo entero
b
con dos elementos (los cuales se determinan según el número de inicializadores de arreglos
anidados) que representan las fi las del arreglo bidimensional. Cada elemento de
b
es una referencia a un arre-
glo unidimensional de variables
int
. El arreglo
int
de la fi la 0 es un arreglo unidimensional con dos elementos
(
1
y
2
), y el arreglo
int
de la fi la 1 es un arreglo unidimensional con tres elementos (
3
,
4
y
5
).
Creación de arreglos bidimensionales mediante expresiones de creación de arreglos
Un arreglo multidimensional con el mismo número de columnas en cada fi la puede crearse mediante una expre-
sión de creación de arreglos. Por ejemplo, en las siguientes líneas se declara el arreglo
b
y se le asigna una referencia
a un arreglo de tres por cuatro:
int
b[ ][ ] =
newint
[
3
][
4
];
7.9 Arreglos
multidimensionales
285
Fila 0
Fila 1
Fila 2
Subíndice de columna
Subíndice de fila
Nombre del arreglo
a[ 0 ][ 0 ]
a[ 1 ][ 0 ]
a[ 2 ][ 0 ]
a[ 0 ][ 1 ]
a[ 1 ][ 1 ]
a[ 2 ][ 1 ]
a[ 0 ][ 2 ]
a[ 1 ][ 2 ]
a[ 2 ][ 2 ]
a[ 0 ][ 3 ]
Columna 0
Columna 1
Columna 2
Columna 3
a[ 1 ][ 3 ]
a[ 2 ][ 3 ]
Figura 7.16
| Arreglo bidimensional con tres fi las y cuatro columnas.
07_MAQ_CAP_07.indd285
4/19/081:23:03AM