Anterior Home Siguiente

Estructuras en C

Una estructura es una colección de variables bajo un solo nombre. Estas variables pueden ser de difrente tipo, y cada una tendrá un nombre que permitira referirla dentro de la estructura. Una estructura es una buena manera de agrupar varias piezas de información relacionadas.

Un aestructura puede ser definida como un nuevo nombre de tipo, con lo cual se extiende en número de variables disponibles. Dentro de de ellas se pueden alojar otras estructuras básicas como arreglos y punteros, pero se debe ser cuidadoso para manejarlas.

Definición de una Estructura

Usualmente se define una estructura muy cerca del comienzo de un archivo fuente, justo depués de los #include y los #define. De esta manera se permite el uso de este nuevo tipo de variable a lo largo de todo el programa.

Ejemplo de definición de estructura:

typedef struct ficha {
	char nombre[30];
	char asignatura[30];
	int edad;
	int nivel;
} alumno;

Con esto se ha definido un nuevo tipo de variables, que tras esto simplemente pueden ser declaradas como.

alumno jose;

La declaración entonces de variables tipo alumno sucede igual que las declaraciones de enteros o flotantes, y en este caso la variable jose, tendrá automáticamente los miembros nombre, asignatura, edad y nivel.

Acceso a los miembros de una Estructura

Cada miembro de la estructura puede ser usado como cualquier otra variable normal, pero su nombre resulta un poquito mas largo. Por ejemplo el miembro nombre e la variable jose se comportará como cualquier otro arreglo de caracteres, pero para referirnos a él, deberemos hacerlo mediante:

jose.nombre;

Aquí el punto es un operador que selecciona un miembro de la estructura.

Cuando se involucran punteros en una estructura se debe usar el operador ->, ejemplo:

jose->nombre;

Las estructuras se pueden usar como argumentos y resultados de funciones

Una estructura puede ser usada como argumento de una función, al igual que cualquier otra variable normal, pero con la ventaja de que en el fondo le estamos pasando un conjunto de variables bajo un sólo nombre.

Habitualmente una función devuelve solo una variable, pero usando estructuras podemos lograr que que la función devuelva un conjunto de variables alojadas en una sola estructura.

Si queremos alterar solo uno o algunos de los miebros de un aestructura mediante una función debemos referirnos a ellos como se indicó más arriba, usando ->

Como se mencionó más arriba, las estructuras son buenas para alojar información interrelacionada, como por ejemplo los terminos de un número complejo:

typedef struct {
	double real;
	double imaginario;
} complejo;

De forma similar se podrían alojar coordenadas cartesianas de algún cuerpo geométrico, matrices, etc...

Además una estructura puede contener a otra estructura, con lo que se extienden más aún las posibilidades.

Además se pueden incluir punteros dentro de una estructura declarados bajo el mismo tipo de la estructura que los contiene. Esto es muy útil para trabajar listas enlazadas, árboles y otras estructuras interconectadas.


Anterior Home Siguiente



© 2000 Made in Bufoland