Las estructuras son un medio para reunir un grupo de datos que quiza sean de direrentes tipos. Para ejemplificar esto en forma sencilla, se definira una estructura que describa un naipe. Un naipe como el tres de pica tiene un valor en puntos (3) y otro segun la pinta (picas). Pueden declararse dos variables:
int puntos;
char pinta;
que retienen la informacion. La variable PUNTOS tomara valores
del 1 al 13, para representar desde el "as" hasta el "rey"; y la
variable
PINTA tomara los valores 't', 'd', 'c', y 'p', para representar a las
pintas (trebol, diamante, corazon y pica). Las estructuras permiten
agrupar a las variables, por lo que
struct naipe {
int puntos;
char pinta;
};
creara el tipo de dato derivado STRUCT NAIPE, donde NAIPE es
el nombre de la estructura. Asi, el nombre puede usarse para declarar
variables de este tipo. La declaracion
struct naipe c1, c2;
asigna almacenamiento para los identificadores c1 y c2, que son de tipo
STRUCT NAIPE. Los identificadores PINTA Y PUNTOS se consideran
MIEMBROS de STRUCT NAIPE. Para tener acceso a los valores de
los miembros, se empleara el operador mienbro de estructura " . ".
Se asignaran a c1 los valores que representan al tres de picas y a c2 los valores que representan al rey de diamantes.
c1.puntos = 3;
c1.pinta = 'p';
c2.puntos = 13;
c2.pinta = 'd';
Suele ser una buena practica de programacion asociar un nombre a un
tipo de estructura, pues es conveniente tanto para las declaraciones
futuras como para la documentacion. Cuando se usa TYPEDEF para
nombrar a un tipo de estructura, el nombre no tiene importancia. Un ejemplo
de esto es:
typedef struct {
float re;
float im;
} complex;
complex a, b, c[100];
El tipo COMPLEX sirve ahora en lugar del tipo de estructura. El
programador obtiene un alto grado de modularidad y facilidad de transporte
usando TYPEDEF para denominar dichos tipos derivados y almacenamiento
de encabezamientos.