Insurgentes Sur 1590,
Col. Del Valle,
05100, México, D.F.
Declaración de las estructuras
Una estructura es una colección de una o más variables, posiblemente de diferentes tipos, combinadas bajo un solo nombre. El nombre de la estructura se utiliza para introducir un nuevo tipo de la estructura. La sintaxis para declarar una estructura se muestra a continuación:
struct [etiqueta]{
variables de datos llamadas miembros de la estructura;
:
};
La declaración de una estructura introduce un tipo de estructura, pero no reserva espacio para ella. La etiqueta es opcional en la declaración pero es útil si alguna referencia posterior a este tipo de estructura se piensa hacer. El espacio se reserva para la estructura hasta que un nombre de la estructura es declarado. Esto se puede hacer de dos maneras:
struct [etiqueta]{
:;
miembro;
:;
} nombre1, nombre2;
Aquí se declara la forma de la estructura, se da una etiqueta opcional, y el nombre entonces se reserva para cada estructura nombrada. (La estructura se puede usar más tarde en el programa si otra estructura de la misma forma se declara). Este método de declaración de una estructura no es el estilo preferido:struct etiqueta nombre_nuevo;
En esta declaración, la forma de la estructura fue previamente declarada, y una etiqueta ha sido asociada a dicha forma. La declaración de arriba usa ahora esa etiqueta para declarar el nombre de una estructura.
Ejemplo
struct date{
int dia;
int mes;
int anio;
char nombre_mes[4];
}cumpleanios;
Acceso a los Elementos de una Estructura
Un elemento en particular de una estructura puede ser referido como:
nombre_de_estructura.elemento;El "." conecta el nombre de la estructura con el elemento deseado. Por ejemplo, si queremos comparar el nombre del mes en d con el nombre del elemento haríamos lo siguiente:
struct date d;
if(strcmp(d.nombre_mes,"Feb") == 0)
:
Los elementos de una estructura pueden ser de cualquier tipo excepto funciones que regresen un valor y void. Una estructura NO debe contener una instancia de sí misma pues esto sería recursivo por naturaleza; aún así, puede contener apuntadores a instancias de estructuras similares. Esto se puede usar para hacer listas de cadenas y será discutido con detalle más adelante.