Está en la página 1de 3

Estructuras y Uniones

La estructura o registro es un tipo de dato estructurado que agrupa una o ms variables, ya sea de un tipo o de diferentes tipos de datos, y adems estos pueden ser a su vez datos simples o datos estructurados. Para el uso de estructuras debe considerar:

Sintaxis: struct identificador_estructura { Tipo_dato identificador; Tipo_dato identificador; . . };alias

Se utiliza la palabra struct, para dar alusin de que es una estructura, enseguida se pone el identificador, dentro de las llaves se defines las variables de la estructura, instrucciones y procesos, se cierra llaves, y se anexa un alias, que funciona como enlace para permitir el acceso a la estructura. Para acceder a los elementos de la estructura registro.clave = 20; //se almacena en variables globales, o locales, dependiendo donde se necesiten. scanf(%f, &registro.precio); //para almacenar, se utiliza punto despus del nombre de la estructura printf(Articulo=%d, registro.clave); //para imprimir se accesa a la estructura utilizando el alias seguido de punto y la variable que se usara.

Uniones
La definicion de "union" es similar a la de "estructura", La diferencia entre las dos es que en una estructura, los miembros ocupan diferentes areas de la memoria, pero en una union, los miembros ocupan la misma area de memoria. Entonces como ejemplo: union { int i; double d; } u; El programador puede acceder a travs de "u.i" o de "u.d", pero no de ambos al mismo tiempo. Como "u.i" y "u.d" ocupan la misma rea de memoria, modificar uno modifica el valor del otro, algunas veces de maneras impredecibles. El tamao de una union es el de su miembro de mayor tamao. Ejemplo: Encabezados /*Creacion de una union*/ union frases { char mensajes[50]; char ayudas[50]; char lineas[50]; } palabra; /*Creacion de una estructura*/ struct comparte { char mensajes[50]; char ayudas[50]; char lineas[50]; }Sistema; /*L a estructura y la union tienen los mismos tipos de datos*/ int main(int argc, char** argv) { /*Inicializamos*/ strcpy(palabra.mensajes, "Primer Mensaje"); /*Inicializamos*/ strcpy(palabra.ayudas, "Una Ayuda"); printf("\nFrases en Union: ");

/*Imprimimos mensajes de union*/ printf("\n1- %s", palabra.mensajes); /*Imprimimos ayudas de union*/ printf("\n2- %s", palabra.ayudas); /*Inicializamos*/ strcpy(Sistema.mensajes, "Primer Mensaje"); /*Inicializamos*/ strcpy(Sistema.ayudas, "Una Ayuda");

printf("\n\nFrases en Struct: "); /*Imprimimos mensajes de struct*/ printf("\n1- %s", Sistema.mensajes); /*Imprimimos ayudas de union*/ printf("\n2- %s", Sistema.ayudas); return 0; }

También podría gustarte