Estructuras en Lenguaje C
Sistemas Septimo “A”
Estructuras en Lenguaje C
¿Qué son
estructuras?
Las estructuras son colecciones de variables relacionadas bajo un
nombre.
Las estructuras pueden contener variables de muchos tipos
diferentes de datos ‐ a diferencia de los arreglos que contienen
únicamente elementos de un mismo tipo de datos.
¿Cómo se declaran las estructuras?
Las estructuras son tipos de datos derivados ‐ están construidas
utilizando objetos de otros tipos. Una estructura contiene varios
datos. La forma de definir una estructura es haciendo uso de la
palabra clave struct.
struct mystruct
{
int int_member;
double double_member;
char string_member[25];
} variable;
"Variable" es una instancia de "mystruct" y no es necesario ponerla aquí. Se podría omitir de la
declaración de "mystruct" y más tarde declararla usando: struct mystruct variable;
Ejemplo
#include
#include
struct Planeta{
char Nombre[20];
double Posicion[3];
double Masa;
};
void Print(struct Planeta *p){
printf("Planeta:\n");
printf("Nombre:%s\n",p‐>Nombre); printf("Posicion: (%.2lf, %.2lf, %.2lf)\n",p‐>Posicion[0],p‐>Posicion[1],p‐>Posicion[2]);
printf("Masa: %.2lf \n",p‐>Masa);
}
int main(int argc,char *argv[]){
struct Planeta Tierra;
strcpy(Tierra.Nombre,"Tierra");
Tierra.Posicion[0]=10e3;
Tierra.Posicion[1]=1.2e2;
Tierra.Posicion[2]=1.8e4;
Tierra.Masa=312e11;
Print(&Tierra);
}
Galo Alomoto Cuvi
Sistemas Septimo “A”
Como inicializar
estructuras Las estructuras pueden ser inicializadas mediante listas de
inicialización como con los arreglos. Para inicializar una estructura
escriba en la declaración de la variable a continuación del nombre de
la variable un signo igual con los inicializadores entre llaves y
separados por coma
Ejemplo
e1 = { ’a’, 10 };
Si en la lista aparecen menos inicializadores que en la estructura los miembros restantes son
automáticamente inicializados a 0. Las variables de estructura también pueden ser inicializadas
en enunciados de asignación asignándoles una variable del mismo tipo o asignándoles valores
a los miembros individuales de la estructura. Podemos inicializar una variable del tipo fecha
como sigue:
struct fecha f = {4, 7, 1776, 186, ”Julio”};
Para tener acceso a miembros de estructuras utilizamos el operador
punto. El operador punto se utiliza colocando el nombre de la
variable de tipo estructura seguido de un punto y seguido del
nombre del miembro de la estructura. Por ejemplo, para imprimir el
miembro c de tipo char de la estructura e1 utilizamos el enunciado:
printf (” %c, e1.c);
Cómo tener acceso a los miembros de
Para acceder al miembro i de la estructura e1 escribimos: e1.i
estructuras
En general, un miembro de una estructura particular es referenciada
por una construcción de la forma:
nombre de estructura.miembro
por ejemplo para chequear el nombre de mes podemos utilizar:
if (strcmp(d.nombre mes,“Agosto”)==0) ...
Las estructuras pueden ser pasadas a funciones pasando miembros
de estructura individuales o pasando toda la estructura.
Cuando se pasan estructuras o miembros individuales de estructura
a una función se pasan por llamada por valor. Para pasar una
estructura en llamada por referencia tenemos que colocar el ’*’ o
Cómo utilizar
’&’.
estructuras con
funciones
Los arreglos de estructura como todos los demás arreglos son
automáticamente pasados en llamadas por referencia. Si
quisiéramos pasar un arreglo en llamada por valor, podemos definir
una estructura con único miembro el array.
Una función puede devolver una estructura como valor.
Galo Alomoto Cuvi
Sistemas Septimo “A”
Ejemplo
Consideraremos el ejemplo de un punto dado por dos coordenadas enteras.
struct punto ...
Regístrate para leer el documento completo.