Arreglos

Los arreglos son ciertamente las variables estructuradas más populares. Están disponibles en todos los lenguajes de programación y sirven para resolver múltiples problemas. En una primera aproximación, el tratamiento de los arreglos en C no difiere del que se les da en otros lenguajes de programación.

Las cadenas de caracteres son declaradas en C como arreglos de caracteres y permiten la utilización de un cierto número de notaciones y de funciones especiales. Dichas particularidades también serán tratadas más adelante.

Arreglos de una dimensión

Un arreglo (unidimensional) "A" es una variable estructurada formada de un número "n" de variables simples del mismo tipo que son llamadas los componentes del arreglo. El número de componentes "n" es, entonces, la dimensión del arreglo. De igual manera que en matemáticas, decimos que "A" es un vector de dimensión "n".

Por ejemplo, la declaración:

int dias[12]={31,28,31,30,31,30,31,31,30,31,30,31};

define un arreglo de tipo entero de dimensión 12. Los 12 componentes son inicializados por los valores respectivos 31, 28, 31,...,31.

Nosotros podemos acceder al primer componente del arreglo por medio de: dias[0], al segundo elemento por: dias[1] y al último elemento por dias[11].

En C, un arreglo se utiliza básicamente cuando queremos tener, por ejemplo, una secuencia de números reunidos en una sola variable. Supongamos que qusiéramos escribir un programa que contara el número de ocurrencias de los primeros diez números en la entrada, podríamos escribir nuestro programa utilizando diez variables, sin embargo es mejor utilizar un arreglo de diez elementos.

Para inicializar un arreglo, podemos hacer lo siguiente:

for (i = 0; i< 10; i++)
   digito[i] = 0;

Otra manera de inicializar un arreglo es la siguiente:

int arreglo[4] = {100, 200, 300, 400};

Si no se inicializa explícitamente el arreglo no se puede estar seguro del valor que contienen los elementos del mismo, siendo éste una fuente común de error en el desarrollo de programas.

Arreglos de dos dimensiones

En C podemos declarar también arreglos multidimensionales de la siguiente manera:

int arreglo[r][c];

donde r son renglones y c, columnas.

En C, un arreglo de dos dimensiones A es interpretado como un arreglo (umidimensional) de dimensión "r", donde cada componente es un arreglo (unidimensional) de dimensión "c".

Nosotros llamamos "r" el nombre de líneas del arreglo y "c" el nombre de columnas del arreglo. "r" y "c" son entonces las dos dimensiones del arreglo. Un arreglo de dos dimensiones, contiene, pues, "r*c" componentes.

Durante la declaración de un arreglo, podemos inicializar sus componentes indicando la lista de los valores entre corchetes. En el interior de la lista, los componentes de cada línea del arreglo son encerrados entre corchetes. Para hacer más cara la visibilidad de los elementos del arreglo, podemos indicarlos en varias líneas.

int a[3][10] ={{ 0,10,20,30,40,50,60,70,80,90},
              {10,11,12,13,14,15,16,17,18,19},
              { 1,12,23,34,45,56,67,78,89,90}};

Sin embargo, es mucho más conveniente anidar dos ciclos para inicializar un arreglo de dos dimensiones:

for (i = 0; i< 10; i++)
   for (j = 0; j< 10; j++)
      tablero[i][j] = 0;