[Tutorial C] IV.3 - Estructuras

Ver el tema anterior Ver el tema siguiente Ir abajo

[Tutorial C] IV.3 - Estructuras

Mensaje  HarZe el Mar Dic 08, 2009 12:45 am

Estructuras

Las estructuras son conjuntos fijos de variables para un uso concreto, formando un cierto orden. La estructura es completamente a tu elección, lo único fijo es que para declarar hagas:
Código:
struct NOMBRE{
    variables
};
Un ejemplo:
Código:
struct persona{
    char[50] nombre, apellido, DNI;
    int edad, fecha_nacimiento;
};
A partir de aquí puedes definir estrcuturas de tipo persona, por ejemplo:
Código:
struct persona Juan;
Si solo va a haber una estructura con ese nombre, ataja así:
Código:
struct persona{
    char[50] nombre, apellido, DNI;
    int edad, fecha_nacimiento;
} Juan;
Una vez definida, accedemos a la estructura usando el punto para pasar de estructura a variable interna:
Código:
Juan.edad = 20;
Y así podemos cambiar cualquier dato de la estructura una vez creada, puedes hacer una estructura dentro de otra, en eso no hay limites, y el punto sigue siendo la forma de conectar, ejemplo:
Código:
struct cuenta_de _banco{
    struct persona Juan;
    int ingresos, gastos, dinero_actual;
} C_Juan;
C_Juan.Juan.edad = 20;
Y estás cambiando su edad de nuevo.

Ahora vamos a complicarlo más, ¿y si tenemos un puntero a una estructura, cómo accedemos a los datos internos de la estructura, si el puntero no es más que la dirección inmediata del dato? Así:
Código:
struct persona *puntero;
*puntero->edad = 20;
Vamos que para pasar de puntero a variable real, hace falta una flecha formada por guión y un mayor que ( -> )

Muchas veces para acomodar el uso de las estructuras se usa typedef, que es un comando que permite dar a un conjunto de símbolos la equivalencia con la última palabra, un ejemplo sin duda os sacará de dudas:
Código:
typedef struct persona{
    lo de antes...
} Persona;
Persona Juan;
Es decir, cada vez que digas Persona en realidad dices struct persona. No es más que una forma de atajar, pero muy muy usada.

HarZe
WebMaster & Desarrollador

Cantidad de envíos : 58
Fecha de inscripción : 21/06/2009
Edad : 24

Ver perfil de usuario http://opengl-esp.superforo.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.