Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semana 8 Estructuras (MATERIAL DE ESTUDIO)
Semana 8 Estructuras (MATERIAL DE ESTUDIO)
Estructuras (structs)
Una estructura (struct) permite agrupar variables de varios tipos bajo un mismo nombre.
De esta forma es posible crear elementos de datos complejos, basándose en los tipos
básicos que suministra el lenguaje de programación. Una declaración de estructura define
un tipo, y por lo tanto será posible definir variables de este nuevo tipo. Cada una de estas
variables estará compuesta a su vez por las variables que se definieron en la estructura.
struct nombre {
componente1 ;
componente2 ;
...
componenteN ;
} lista-variables ;
Cada uno de los componentes de la estructura tiene a su vez la forma de una declaración de
variables: tipo nombre ;
Por ejemplo, para declarar una estructura que permita manejar, de manera conjunta, los
datos de algunos alumnos de determinado curso, se podría hacer:
struct Alumno {
string Nombre;
string codigo;
float Nota1;
float Nota2;
float Nota3;
float NotaFinal;
} A1, A2, A3;
Esta declaración define tres variables (A1, A2 y A3), cada una compuesta a su vez por un
string para el nombre, un string para su número de alumno, tres float para sus notas
parciales, y un float para su nota final.Los elementos que componen una estructura se
acceden mediante la notación:
1
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
estructura.componente
Por ejemplo, el string que contiene el nombre del segundo alumno se referencia como:
A1.Nombre
Al igual que con los tipos simples de C, es posible definir vectores compuestos de
estructuras. Así, sería posible hacer la definición anterior aplicable a un mayor número de
alumnos:
struct Alumno {
string nombre[30];
string codigo[7];
float Nota1;
float Nota2;
float Nota3;
float NotaFinal;
} Alumnos[NUM_ALUMNOS];
Alumnos[0].Nombre
En las versiones ANSI de C (como gcc), también es posible asignar estructuras, pasarlas
como argumentos a funciones y retornarlas como resultado de funciones. En el caso del
paso de estructuras como argumento, éstas se pasan por valor (al igual que los tipos de
datos convencionales), por lo que es posible cambiar el contenido de las variables dentro
de la función, pero los cambios NO se propagarán al retornar. Las siguientes acciones y
declaraciones serían válidas: