Arrays en el Lenguaje C

Un array es una secuencia de datos del mismo tipo, os datos se llaman elementos de un array y se enumeran consecutivamente 0, 1, 2,... etc. el tipo del dato almacenado en un array pude ser de cualquier tipo de dato de C.

Otros nombres que reciben los arrays unidimensionales son tablas o vectores.

La numeración de los elementos se denomina índice o subíndice de un array y solo determina la posición del elemento dentro del array y no su valor o contenido.

Entonces dado el array denominado pp de 5 elementos

15
45
56
78
89
0
1
2
3
4

Tendríamos que  pp [ 1 ] = 45

O sea que el array llamado pp en la posición 1 tiene un elemento cuyo valor es 45

Declaración de un array


Un array se declara de la misma forma que cualquier otra variable, solo que debemos indicarle al compilador su tamaño.

Tipo   nombre del array   [ tamaño]

Int   pp[5];

El subíndice puede ser referenciado de distintas maneras para cargar o recuperar el valor almacenado en esa posición, por ejemplo

Edad[4];
Ventas[mes+1];
Bonos[mes];
Salario[mes[i]+1];

C  no comprueba que los índices del array estén dentro del rango definido, o sea si deseo leer la posición 8 de pp, no dará error de lectura pero si luego indicara una falla en el programa.

El operador sizeof devuelve el numero de bytes necesarios para contener su argumento, es así que podemos usarlo para conocer el tamaño de un array.

Si tenemos   int a[100] y le aplicamos la función sizeof[a] devolverá un valor de 200.

Formas de inicializar un array

Si se deben asignar valores iniciales a un array podemos emplear distintos métodos

pp[0] = 15;
pp[1] = 45;
pp[2] = 56;
pp[3] = 78;
pp[4] = 89;

También podríamos escribir lo siguiente, determinando automáticamente el tamaño del array

int pp[5]  = { 15, 45, 56, 78, 89 };
char ww[ ] = { ´a´, ´s´, ´I´ };
int pp[] = { 15, 45, 56, 78, 89 };

En C los arrays de caracteres, las cadenas, se caracterizan por tener un elemento nulo final, que indica el fin de la cadena.

Otra manera de inicializar, escribir y leer arrays de gran tamaño, es mediante un ciclo for.

También se pueden asignar variables simbólicas

# define ene 31
# define feb 28
# define mar 31

int meses[12] = { ene, feb, mar,...............};

 

Arrays de caracteres y cadenas


Una cadena es un conjunto de caracteres, tal como << abcdef.>> las cadenas contienen un elemento final nulo que indican fin de la cadena.

char cadena[ ] = “ abcdef ”;

Las cadenas se deben almacenar en un array de caracteres, pero no todos los arrays de caracteres contiene cadenas.

Para copiar una cadena a otra variable cadena se debe utilizar la función strcpy( ), donde si quiero copiar “hola” a la variable saludos seria:

Strcpy( saludos,“hola” );

Para evitar un error debemos tener en cuenta que el tamaño del receptor sea de igual o mayor tamaño que la cadena que vamos a mover.

Arrays multidimensionales


Estos arrays contienen  mas de una dimensión, los mas conocidos son llamados matrices.
Por lo tanto estos arrays tiene mas de un subíndice.
Su declaración será pues:

tipo  nombre [numero de filas] [numero de columnas];
int matriz [5] [6];

En realidad un array de dos dimensiones es un array de arrays  que para representarlo en una forma mas cómoda se lo hace por medio de una matriz.

La inicialización de las matrices puede ser de la misma forma que los vectores, teniendo en cuenta por ejemplo

 Int matriz [3] [4] = { {10,20,30,110},
                                   {40,50,60,101},
                                   {70,80,90,100}  }

El acceso a las matrices para su escritura o lectura será similar a los vectores, teniendo en cuenta la necesidad de al menos dos ciclos for, uno para las filas y otro para las columnas en el caso de una matriz bidimensional.

Utilización de arrays como parámetros


En C todos los arrays se pasan por referencia, o sea que se pasa la dirección del mismo y es posible de modificar su contenido en la función llamada y que al regresar a la función llamadora mantenga este valor modificado.

2 comentarios:

  1. el array no es un programa como tal, pero si duda es la base lógica de muchos
    __________________________________________
    Soy programador y me dedico a poner publicidad en buscadores

    ResponderEliminar