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