facebook cdr twitter cdr   instagram cdr
Viernes, 13 April 2018 16:03

14. Estructuras y uniones

Escrito por
Valora este artículo
(0 votos)

En la creacion de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos que serian muy dificil de describir en los tipos de datos primitivos, esta es la situacion en la que debemos aprovecharnos de las caracteristicas que hacen al lenguaje C especial, o sea el uso de estructuras, uniones y punteros.

14.1 Estructuras

Una estructura contiene varios datos. La forma de definir una estructura es haciendo uso de la palabra clave struct. Aqui hay ejemplo de la declaracion de una estructura:

cap72

"variable" es una instancia de "mystruct" y no es necesario ponerla aquí. Se podria omitir de la declaracion de "mystruct" y más tarde declararla usando:

cap73

También es una práctica muy común asignarle un alias o sinónimo al nombre de la estructura, para evitar el tener que poner "struct mystruct" cada vez. C nos permite la posibilidad de hacer esto usando la palabra clave typedef, lo que crea un alias a un tipo:

cap74

La estructura misma no tiene nombre (por la ausencia de nombre en la primera linea), pero tiene de alias "Mystruct". Entonces se puede usar así: Mystruct variable;

Note que es una convencion, y una buena costumbre usar mayúscula en la primera letra de un sinónimo de tipo. De todos modos lo importante es darle algún identificador para poder hacer referencia a la estructura: podriamos tener una estructura de datos recursiva de algún tipo.

Ejemplo de una estructura :

cap75

14.1.1 Estructuras anidadas

Una estructura puede estar dentro de otra estructura a esto se le conoce como anidamiento o estructuras anidadas. Ya que se trabajan con datos en estructuras si definimos un tipo de dato en una estructura y necesitamos definir ese dato dentro de otra estructura solamente se llama el dato de la estructura anterior.

Definamos una estructura en nuestro programa:

cap76

Y luego necesitamos una nueva estructura en nuestro programa:

cap77

Podemos ver que tenemos datos muy similares en nuestras estructuras, asi que podemos crear una sola estructura llamada infopersona con estos datos idénticos:

cap78

Y crear las nuevas estructuras anteriores, anidando la estructura necesaria:

cap79

cap80

Y acá el ejemplo completo con estructuras anidadas:

cap81

14.2 Uniones

La definición de "unión" es similar a la de "estructura", la diferencia entre las dos es que en una estructura, los miembros ocupan diferentes áreas de la memoria, pero en una unión, los miembros ocupan la misma área de memoria. Entonces como ejemplo:

cap82

El programador puede acceder a través 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 tamaño de una unión es el de su miembro de mayor tamaño.

Ejemplo de una unión:

cap83

 

Visto 27 veces
Alejandro Carreño

Desarrollador, Programador, Web Master y Community Manager de CDR Consultores

Más en esta categoría: « 13. Archivos

Deja un comentario

Asegúrese de introducir toda la información requerida, indicada por un asterisco (*). No se permite código HTML.

Tweets

RT @cdrconsultores: Descubre aquí los consejos para evitar errores de gestión empresarial -> https://t.co/sXjnWiVsYR https://t.co/RfDxmfZhbx
Descubre aquí los consejos para evitar errores de gestión empresarial -> https://t.co/sXjnWiVsYR https://t.co/RfDxmfZhbx

Productos

Servicios

servicios off
website off
desarrollo off
formacion off
negocios off

Facebook

end-logo

 

Nestor M. Carreño T. - Todos los Derechos Reservados
Rescindir de Dios y de los valores morales, lleva no sólo al empobrecimiento espiritual, sino también al empobrecimiento material
Gracias a Usted, Muchas Gracias por Consultarnos, Dios le Bendiga!

Diseño y Desarrollo Nestor M. Carreño T. - CDR Consultores, C.A.