Está en la página 1de 4

Arreglos de estructuras Se puede crear un arreglo de estructuras tal como se crea un arreglo de otro tipo.

Los arreglos muy tiles para almacenar archivos de empleados, inventarios, o cualquier tipo de dato que se puede utilizar con la estructura. La declaracin de un arreglo de coleccin CIDI se puede hacer como se declarara cualquier arreglo normal: Coleccioncidi cd[100]; Como podemos ver el arreglo cd consta de 100 elementos. Para acceder a los miembros de cada elemento del arreglo se utiliza la notacin del arreglo: Printf(El titulo del disco 10 es %s, cd[9].titulo); Printf(El precio del 25 disco es %f, cd[24].precio); Se puede inicializar un arreglo de estructuras en el punto de la declaracin encerrando la lista de inicializadores entre llaves{}: Struct coleccioncidi { char titulo[30]; char artista[30]; char genero[20]; float precio; }; cd [3]={ A State Of Trance, Armin Van Buuren, Trance-Techno, 150, Nyana, Dj Tisto, Trance, 250, Dulce Beat Belanova Electropop 130}; Arreglos como miembros Los miembros de la estructura pueden ser a su vez arreglos. En este caso es muy importante tener especial cuidado al acceder a los elementos individuales del arreglo. Consideremos la siguiente definicin de estructura esta sentencia declara un arreglo e 100 estructuras. Cada estructura contiene informacin de datos de empleados de una empresa. Nomina { char nombre[30]; //arreglo para la cadena del nombre int dependientes; char departamento[10]; // arreglo para la cadena float salario; }empleado [100]; //esto significa que es un arreglo de cien empleados

Uniones Las uniones son casi idnticas las estructuras, pero producen resultados diferentes. Una estructura, permite almacenar variables relacionadas juntas y almacenadas en posiciones contiguas en memoria. Las uniones declaradas con la palabra union, almacenan tambin miembros mltiples en un paquete; sin embargo, en lugar de situar sus miembros unos detrs de otros, en una unin todos los miembros se solapan entre si en la misma posicin la sintaxis es: union nombre{ tipo1 miembro1; tipo2 miembro2; .. }; por ejemplo: union coleccinCIDI { char titulo; char artista; flota precio; }; Una razn para utilizar la unin es para ahorrar memoria. En muchos programas se deben tener varias variables, pero no necesitan utilizarse todas a la vez. Consideremos la situacin en que se necesitan diversas cadenas de caracteres de entrada; se pueden crear varios arreglos como en el siguiente: char titulo[50]; char nombre[50]; char genero[50]; Estas 3 variables ocupan 150 bytes. Sin embargo si el programa no las utiliza a la vez por qu no permitirle compartir la memoria utilizando una unin? Cuando se combinan en el tipo union coleccinCIDI, estas tres variables ocupan solo 50 bytes de memoria: union coleccionCIDI { char titulo[50]; char nombre[50]; char genero[50]; } disco; para referirse a los miembros de la unin se utiliza el operador punto: disco.titulo disco.nombre

Las estructuras ayudan a organizar datos complicados, particularmente en programas grandes, ya que permiten tratar como una unidad a un conjunto de variables relacionadas, en lugar de tratarlas como entidades independientes. Un buen criterio de uso de estructuras establece que la definicin de una estructura debe ir acompaada por la definicin de un conjunto de funciones que se encargan de realizar la manipulacin directa de la nueva entidad creada. Una estructura se define en lenguaje C a travs de la siguiente sintaxis: struct Nombre {
tipo1 Campo1; tipo2 Campo2; tipoN Campo N?;

}; La declaracin struct Nombre Var1; Arreglos de Estructuras En el siguiente ejemplo se observa como se declara un arreglo de estructuras, definidas de manera tal que mantienen la informacin necesaria para describir un intervalo, y la cantidad de cuentas que caen en ese intervalo como para armar un histograma. Ejemplo: /* Programa que imprime la tabla de conversin de Fahrenheit a Celsius para F = 0, 20, 40,, 300

1. include <stdio.h> int main() {


int Lower, Upper, Step; float Fahr, Celsius; Lower = 0; Upper = 300; Step = 20;

Fahr = Lower; while(Fahr <= Upper) { Celsius = (5.0/9.0) * (Fahr - 32.0); printf(%4.0f F %6.1f C\n, Fahr, Celsius); Fahr = Fahr + Step; } /* fin del while */ return 0;

} /* fin del main */ Arreglos de Estructuras Es posible agrupar un conjunto de elementos de tipo estructura en un array. Esto se conoce como array de estructuras: struct trabajador {
char nombre[20]; char apellidos[40]; int edad;

}; struct trabajador fijo[20]; As podremos almacenar los datos de 20 trabajadores. Ejemplos sobre como acceder a los campos y sus elementos: para ver el nombre del cuarto trabajador, fijo[3].nombre; Para ver la tercera letra del nombre del cuarto trabajador, fijo[3].nombre[2];. Para inicializar la variable en el momento de declararla lo haremos de esta manera: struct trabajador fijo[20]={{Jose,Herrero Martinez,29},{Luis,Garcia Sanchez,46}};