ARREGLOS
Un arreglo es un conjunto de variables del mismo tipo que pueden ser referenciadas a través de un mismo nombre. La forma de identificar a un elemento determinado es a través de un índice.
La declaración:
instruye al compilador a que reserve una cantidad de memoria suficiente para almacenar 10 entidades enteras y referirse a esa memoria a traves del identificador Array. Dado que el número de elementos en un arreglo suele ser utilizado en distintos lugares de un programa, es buen estilo de programación el referenciarlo a través de una constante simbólica:
#define N 10
int Array[N];
Los elementos individuales del arreglo se comiena a numerar a partir del elemento 0, asi, Array[0] individualiza al primer elemento y Array[9] al último.
Los arreglos pueden ser multidimensionales, asi por ejemplo
Define una region de memoria como para almacenar 200 reales en doble precisión. La forma en que se organizan en la memoria estos 200 elementos es la siguiente:
Matriz[0][0], Matriz[0][1], Matriz[0][2], ..., Matriz[1][0], Matriz[1][1],...,...,Matriz[9][19]
La inicialización de un arreglo puede realizarse a través de una lista, si la lista es mas corta que el numero de elementos en el arreglo, el resto de los elementos se inicializan a 0. Se puede obviar el tamaño de un arreglo al inicializarlo con una lista, el tamaño será el mismo que el de la lista en este caso. Ej:
float a[5] = {0.1, 1.2, 2.3, 3.4, 4.5};
double b[100] = {1.0}; /* los 99 restantes serán 0.0 */
int a[] = {2, 3, -5, 7}; /* equivale a a[4]={2,3,-5,7} */
Ejemplo:
/*
Utilización de arreglos.
Programa que cuenta cuántas veces se repite cada dígito,
cada carácter separador, y otros carácteres.
*/
#include <stdio.h>
#define ND 10
int main()
{
int c, i, nWhite = 0, nOther = 0, nDigit[ND];
for(i = 0; i < ND; i++)
nDigit[i] = 0;
while((c = getchar()) != EOF)
if(c >= '0' && c <= '9')
nDigit[c - '0']++;
else
if(c == ' ' || c == 'n' || c == 't')
nWhite++;
else
nOther++;
for(i = 0; i < ND; i++)
printf("Dígito %d: %dn",i,nDigit[i]);
printf("Caracteres separadores: %dn",nWhite);
printf("Otros caracteres: %dn",nOther);
return 0;
}
Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos: