A continuación, del Curso de Programación en C de Programar es fácil (o no) veremos un breve resumen de algunas estructuras de datos:
Struct
Una estructura es una agrupación, bajo un mismo nombre de variable, distintos datos que pueden ser de diferente tipo. Las estructuras vienen a salvar la limitación de los arrays, que solo almacenan un único tipo de dato.
Una estructura también es llamada registro y cabe su analogía con los registros de una tabla, donde un registro tiene varios datos (campos) y estos pueden diferir en su tipo:
Ejemplo:
//un registro usuarios:
struct usuarios_t usuario;
usuario.dni=27651109
strcpy(usuario.nombres,"Jose Maria");
...
//un array de registros:
struct usuarios_t usuarios[10];
usuario[0].dni=27651109
strcpy(usuario[0].nombres,"Jose Maria");
usuario[1].dni=26852789
strcpy(usuario[1].nombres,"Juan Carlos");
...
No es mi intención sumar complejidad a este resumen, solo quiero agregar que se pueden declarar punteros a estructuras, que los elementos de una estructura pueden ser punteros, que se pueden anidar estructuras, pasar estructuras (como punteros a estructuras) como parámetro de funciones, etc.
Union
Una union se declara de la misma forma que una estructura, reemplazando struct por union. La diferencia está en que todos los miembros de la union comparten el mismo espacio en memoria, por lo que solo se puede tener almacenado un miembro de ellos en cada momento. El tamaño de la union estará dado por el miembro más largo de la misma.
Ejemplo:
Enum
Una enumeración es un conjunto de constantes enteras. A la enumeración se le puede asignar un nombre, que se comportará como un nuevo tipo de dato que solo podrá contener los valores especificados en la enumeración.
Ejemplo:
dias_semana dia;
dia = LUNES;
dia = 1; /* Ambas asignaciones son equivalentes */
2 Respuestas para "Struct, Union y Enum en C"
hola…bueno espero q esta pag siga avansando me sirvio y creo q ya me va a servir mucho mas adelante tambien…tengo 16 años y vivo en un `pueblo dnd las pocivilidades de hacer lo q me gusta es muy inpocible…pero bueno cn esfuerso creo q lo voy a lograr…y como me gusta la programacion me encanta y otras cosa de la informatica…esperoq estoy le enorgujesca a los de la pag… y bueno nada gracias por brindar ayuda y resumenes de varios cosas..ejeje
Hola, de igual manera espero que esto continue creciendo… por mi lado estoy leyendo un libro The C programming Language by Brian W. Kernighan and Dennis M. Ritchie (muy bueno por cierto)… en mi pais no hay muchas facilidades de poner en practica la programacion en C, asi que me toca practicarlo todas las noches y en mis tiempos libres, como ahora
..
muchas gracias nuevamente!
un abrazo!
Comentarios: