Estructura en lenguaje c
7.1 DEFINICIÓN DE UNA ESTRUCTURA
Las estructuras (struct) son agrupaciones de una o más variables de tipos posiblemente diferentes, agrupadas bajo un solo nombre, que permite un manejo más cómodo de la agrupación de la información. Las struct son estructuras de datos similares a los registros (record) de Pascal. La forma general de definición es:
structtipo_estructura
{
tipo miembro_1;
tipo miembro_2;
.
tipo miembro_n;
} variable_estructura;
donde tipo_estructura o variable_estructura pueden omitirse pero no ambos. Las estructuras ayudan a agrupar información relacionada, por ejemplolos datos de un carnet de identidad, las coordenadas de un punto, etc.
Ejemplos de declaración de estructuras
struct datos
{
char nombre[20];
char direccion[20];
int codigo;
};
struct datos a,b[5]; /* b es un array de estructuras */
Estructuras anidadas: se producen cuando algún miembro de laestructura es a su vez otra estructura.
struct fecha
{
int dia;
int mes;
int anio;
};
struct persona
{
char nombre[20];
struct fecha nacimiento;
};
struct persona p;
7.2 REFERENCIA A LOS ELEMENTOS DE UNA ESTRUCTURA
Los elementosindividuales de una estructura se referencian utilizando el operador punto (.) entre el nombre de la variable de tipo estructura y el nombre del miembro de la estructura. A los elementos de una estructura se les denomina miembros.
Continuando con las estructuras de los ejemplos anteriores, se pueden tener las siguientes referencias a miembros:
a.nombre a.dirección a.codigo b[2].codigo
p.nombre p.nacimiento.dia p.nacimiento.mes
7.3 FUNCIONES Y ESTRUCTURAS
1 .- Paso por valor de miembros de una estructura a una función.
Se realiza como si fueran variables simples. Por ejemplo, para pasar por valor el miembro a.codigo
void funcion f1(int) /*declaración dela función prototipo*/
f1(a.codigo); /* llamada a la función */
void f1(int x) /* definición de la función */
{ ........
..........}
2.- Paso por dirección de miembros de una estructura a una función.
Se realiza como si fueran variables simples. Por ejemplo, para pasar por valor el miembro a.codigo
void funcionf1(int *) /*declaración de la función prototipo*/
f1(&a.codigo); /* llamada a la función */
void f1(int *x) /* definición de la función */
{..........
..........}
Hay que tener en cuenta que si lo que se pasa a una función es un miembro de una estructura que sea un array éste siempre se pasa por dirección (ya que el nombre de un array es ladirección del primer elemento del mismo).
3.- Paso por valor de estructuras completas a funciones.
En el siguiente ejemplo suma es una función que recibe dos estructuras pasadas por valor y a su vez devuelve una estructura.
struct vector
{
int x,y,z;
};
struct vector (struct vector, struct vector);
void main() {
struct vector v1,v2,v3;
...
v3=suma(v1,v2);
...
}
struct vector suma(struct vector v1, struct vector v2)
{
v1.x+=v2.x;
v1.y+=v2.y;
v1.z+=v2.z;
return (v1);
}
4.- Paso por...
Regístrate para leer el documento completo.