estructuras
Estructuras
Finalidad
Finalidad de las estructuras
• La finalidad de una estructura es agrupar una
o más variables, generalmente de diferentes
tipos, bajo un mismo nombre para hacer más
fácil su manejo.
Estructuras
Estructuras anidadas
• Algunos de los datos de la estructura podrían
ser a su vez estructuras.
• Por ejemplo, fecha de nacimiento podría ser una estructura con los datos día, mes y año.
Día:
Fecha nacimiento:
Mes:
Año:
Sintaxis
Sintaxis
• Para crear una estructura hay que definir un
nuevo tipo de datos y declarar una variable de
este tipo.
• La declaración de un tipo estructura, incluye
tanto los elementos que la componen como sus
tipos.
struct tipo_estructura
{
/*declaración de los miembros (variables)*/
}tipo_estructura es un identificador que nombra el nuevo tipo definido.
Declaración
Declaración
• Las reglas para utilizar el nuevo tipo son las
mismas que las seguidas para los tipos
predefinidos como float, int y char, entre
otros.
struct tipo_estructura [variable1 [, variable2] …];
Ejemplo
Ejemplo
/*declaración del tipo estructura tficha */
struct tficha
{
char nombre [40];char direccion [40];
long telefono;
};
/*definición de estructuras varl y var2 */
struct tficha varl, var2;
obligatorio
Visualmente
Visualmente tenemos
• var1
nombre
direccion
…
…
telefono
• var2
nombre
direccion
telefono
…
…
Otra
Otra forma de declarar
/*declaración del tipo estructura tficha */
typedef struct ficha
{
char nombre [40];
char direccion [40];long telefono;
typedef permite generar un
alias llamado tficha
}tficha;
/*definición de estructuras varl y var2 */
tficha varl, var2;
Resultado
Resultado el mismo
• var1
nombre
direccion
…
…
telefono
• var2
nombre
direccion
telefono
…
…
Acceso
Acceso a los miembros
• Para referirse a un determinado miembro de
la estructura, se utiliza la notación estructura.miembro.
• Por ejemplo, var1.telefono se refiere al
miembro telefono de la estructura var1.
Ejemplos
Ejemplos de asignación
//asigna el valor 232323 al miembro teléfono
de var1
var1.telefono = 232323;
// lee información para el miembro nombre de
la
la estructura var2
gets(var2.nombre);
Ejemplo
Ejemplo completo
#include
typedef struct ficha
{
char nombre[40];
chardireccion[40];
long telefono;
}tficha;
Los miembros de la estructura son locales a ésta. Aún
cuando existan variables con el mismo nombre los
miembros
miembros sólo son afectados al acceder a ellos por
medio del nombre de la variable tipo estructura
void main(void)
{
tficha varl;
// definición de var1 tipo tficha
char nombre[40] = "Javier"; //cadena de caracteres
int ficha = 1;
//entero llamado ficha
gets (varl.nombre);
//
//lectura del nombre en var1
printf("%s\n", varl.nombre);//imprime el nombre de la estructura
printf("%s\n" , nombre);
//imprime cadena nombre
printf("%d\n", ficha);
//imprime entero ficha
}
Miembros
Miembros que son estructuras
• Para declarar un
miembro como
una estructura, es
necesario haber
declarado
previamente ese tipo de estructura.
struct fecha
{
int dd, mm, aa;
};
struct ficha
{
char nombre[40];
char direccion[40];
long telefono;
struct fecha fec_nac;
};
struct ficha persona;
Ejemplo
Ejemplo estructura anidada
• persona
…
nombre
…
direccion
telefono
fec_nac
dd
mm
aa
estructura
Este ejemplo define la estructura persona, en la que el
miembro fec_naces a su vez una estructura.
Accediendo
Accediendo a un miembro anidado
• Para acceder, al miembro aa de persona
escribiremos:
persona.fec_nac.aa;
• Los miembros de una estructura son
almacenados secuencialmente, en el mismo
orden en el que son declarados.
fec_nac
Operaciones
Operaciones con estructuras
• lnicializarla en el momento de definirla.
struct ficha persona =
{"Francisco",...
Regístrate para leer el documento completo.