|
Los arreglos ó conjuntos de
datos ordenados (arrays) recolectan variables del mismo tipo , guardandolas en forma
secuencial en la memoria . La cantidad máxima de variables que pueden guardar está sólo
limitada por la cantidad de memoria disponible. El tipo de las variables involucradas
puede ser cualquiera , con la única restricción de que todos los componentes de un array
deben ser del mismo tipo .
La declaración de un array se realiza según la
siguiente sintaxis :
tipo de las variables nombre[ numero de
elementos] ;
ejemplo :
int var1[10] ;
char nombre[50] ;
float numeros[200] ;
long double cantidades[25] ;
Si tomamos el primer caso , estamos declarando un
array de 10 variables enteras , cada una de ellas quedará individualizada por el
subíndice que sigue al nombre del mismo es decir :
var1[0] , var1[1] , etc , hasta var1[9] .
Nótese que la cantidad de elementos es 10 , pero
su numeración vá de 0 a 9 , y nó de 1 a 10 . En resumen un array de N elementos tiene
subíndices válidos entre 0 y N - 1 . Cualquier otro número usado como subíndice ,
traerá datos de otras zonas de memoria , cuyo contenido es impredictible .
Se puede referenciar a cada elemento , en forma
individual , tal como se ha hecho con las variables anteriormente , por ejemplo :
var1[5] = 40 ;
contador = var1[3] + 7 ;
if(var1[0] >>= 37)
Tambien es posible utilizar como subíndice
expresiones aritméticas ,valores enteros retornados por funciones , etc . Así podríamos
escribir :
printf(" %d " , var1[ ++i] ) ;
var1[8] = var1[ i + j ] ;
int una_funcion(void) ;
var1[0] = var1[ una_funcion() ] * 15 ;
Por supuesto los subíndices
resultantes de las operaciones tienen que estar acotados a aquellos para los que el array
fué declarado y ser enteros .
La inicialización de los arrays sigue las mismas
reglas que para los otros tipos de variables , es decir : Si se declaran como globales (
afuera del cuerpo de todas las funciones ) cada uno de sus elementos será automaticamente
inicializado a cero . Si en cambio , su declaracion es local a una función , no se
realiza ninguna inicialización , quedando a cargo del programa cargar los valores de
inicio .
La inicialización de un array local , puede
realizarse en su declaración , dando una lista de valores iniciales:
int numero[8] = { 4 , 7 , 0 , 0 , 0 , 9 , 8 , 7 }
;
Obsérvese que la lista está delimitada por
llaves . Otra posibilidad , sólo válida cuando se inicializan todos los elementos del
array , es escribir :
int numero[] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ,
8 , 9 } ;
donde se obvia la declaración de la cantidad de
elementos , ya que está implícita en la lista de valores constantes .
También se puede inicializar parcialmente un array
, por ejemplo :
int numero[10] = { 1 , 1 , 1 } ;
en éste caso los tres primeros elementos del
mismo valdran 1 , y los restantes cero en el caso que la declaración sea global , ó
cualquier valor impredecible en el caso de que sea local .
|