Professional Documents
Culture Documents
5.1 Estructuras: Es un tipo de dato definido por el usuario, que contiene un conjunto de
miembros, cada uno perteneciente a un tipo de dato primitivo (enteros, flotantes, caracteres,
punteros, arreglos y otras estructuras como elementos dentro de una estructura.
nombre de la
estructura
struct expe
{ char nom [20] ;
char ced [12] ;
float indice ;
};
struct expe estu_des, estu_redes ;
expe
(estructura)
(miembro 1)
nom
(miembro 2)
ced
indice
Formato 2:
tipo-almacenamiento
struct marca
la marca es opcional
{ miembro1;
.
.
.
miembron;
} variable1, variable2, ...variablen;
Ejemplo 1:
nombre de la
estructura
(miembro 3)
expe
(estructura)
struct expe {
char nom [20] ;
char ced [12] ;
float indice;
} estu_des, estu_redes ;
nom
(miembro 1)
ced
(miembro 2)
indice
(miembro 3)
Ejemplo 2 :
expe
struct {
char nom [20] ;
char ced [12] ;
float indice;
} estu_des, estu_redes ;
Ejemplo 3:
struct fecha {
int d;
int m;
int a;
};
struct expe {
char nom[20];
char ced[12] ;
float indice ;
struct fecha ingreso;
} estu_des, estu_redes;
(estructura)
nom
(miembro 1)
ced
(miembro 2)
indice
(miembro 3)
estructura
fecha
estructura expe
expe
(estructura)
nom
variable de la
estuctura fecha
miembro1
ced
miembro2
indice
miembro3
variables de las
estructuras expe
fecha
(estructura)
d
miembro1
miembro2
miembro3
ced
nom
indice
ingreso
(Acceso a un miembro)
variable.miembro
estu_des.ced
estu_des.indice
3-12-14
2.20
Pedro Caballero
estu_des.ingreso
10092004
++estu_des.indice
Formato 2:
(Acceso a un submiembro)
variable.miembro.submiembro
Ejemplo:
estu_des.ingreso.d
estu_des.ingreso.m
estu_des.ingreso.a
10
09
2004
Para leer en una estructura se tiene que tener las siguientes consideraciones:
Al leer un miembro cadena no se pone & por delante porque sucede igual
que un arreglo.
Ejemplo:
estu_des .nom accede la direccin de comienzo de memoria
donde est estu_des.nom
Al leer un miembro int o float si se le pone & por delante.
Ejemplo:
&estu_des.indice
5.1.5 Arreglos de estructura:
Ejemplo:
struct expe {
char nom [20] ;
char ced [12] ;
float indice ;
struct fecha ingreso;
};
static struct expe estu_des[ ] =
{Pedro Chen, 3-12-14 ,2.20,10092004,Norma Arauz,2-12-4,2.75,12082005};
elemento 0
elemento 1
El tamao est sin especificar. Los valores iniciales definirn el tamao del arreglo y la
cantidad de memoria necesaria para almacenar el arreglo.
Procesamiento de un miembro de un arreglo de estructura:
Formato:
Ejemplos:
estu_des[1].nom
Con puntero
pc indice
Con puntero
pc ingreso.mes
pc nom
(*pc).ingreso.mes
pc nom[2]
(*pc).nom[2]
pc (nom + 2)
(*pc).indice
(*pc).nom
*((*pc).nom+2)
Una estructura se puede pasar a una funcin, transfiriendo la estructura completa o sus
miembros individualmente.
Paso de miembros individuales: Si el miembro es una variable primitiva el paso es por
valor y si el miembro es un arreglo es pasado por referencia (son procesados dentro de la
funcin como se explico en el captulo anterior), porque quienes reciben los valores son
parmetros formales y esos parmetros formales no son miembros de una estructura.
Paso de una estructura: Una estructura se puede pasar de dos formas.
Por valor , pasando la estructura sin &.
Ejemplo: estu_des
Por referencia, pasando la estructura con &.
Ejemplo:
&estu_des