|
DECLARACION DE ESTRUCTURAS
Así como los arrays son
organizaciones secuenciales de variables simples , de un mismo tipo cualquiera dado ,
resulta necesario en multiples aplicaciones , agrupar variables de distintos tipos , en
una sola entidad . Este sería el caso , si quisieramos generar la variable " legajo
personal " , en ella tendriamos que incluir variables del tipo : strings , para el
nombre , apellido , nombre de la calle en donde vive , etc , enteros , para la edad ,
número de codigo postal , float ( ó double , si tiene la suerte de ganar mucho ) para el
sueldo , y así siguiendo . Existe en C en tipo de variable compuesta , para manejar ésta
situación típica de las Bases de Datos , llamada ESTRUCTURA . No hay limitaciones en el
tipo ni cantidad de variables que pueda contener una estructura , mientras su máquina
posea memoria suficiente como para alojarla , con una sóla salvedad : una estructura no
puede contenerse a sí misma como miembro .
Para usarlas , se deben seguir dos pasos . Hay que ,
primero declarar la estructura en sí , ésto es , darle un nombre y describir a sus
miembros , para finalmente declarar a una ó más variables , del tipo de la estructura
antedicha , veamos un ejemplo :
struct legajo {
int edad ;
char nombre[50] ;
float sueldo ;
} ;
struct legajo legajos_vendedores ,
legajos_profesionales ;
En la primer sentencia se crea un tipo de
estructura , mediante el declarador "struct",luego se le dá un nombre "
legajo " y finalmente , entre llaves se declaran cada uno de sus miembros , pudiendo
estos ser de cualquier tipo de variable , incluyendo a los arrays ó aún otra estructura
. La única restricción es que no haya dos miembros con el mismo nombre , aunque sí
pueden coincidir con el nombre de otra variable simple , ( o de un miembro de otra
estructura ) , declaradas en otro lugar del programa. Esta sentencia es sólo una
declaración , es decir que no asigna lugar en la memoria para la estructura , sólo le
avisa al compilador como tendrá que manejar a dicha memoria para alojar variables del
tipo struct legajo .
En la segunda sentencia , se definen dos variables
del tipo de la estructura anterior ,(ésta definición debe colocarse luego de la
declaración ) , y se reserva memoria para ambas .
Las dos sentencias pueden combinarse en una sola ,
dando la definición a continuación de la declaracion :
struct legajo {
int edad ;
char nombre[50] ;
float sueldo ;
} legajo_vendedor , legajo_programador ;
Y si nó fueran a realizarse más declaraciones
de variables de éste tipo , podría obviarse el nombre de la estructura ( legajo ).
Las variables del tipo de una estructura , pueden
ser inicializadas en su definición , así por ejemplo se podría escribir:
struct legajo {
int edad ;
char nombre[50] ;
float sueldo ;
char observaciones[500] ;
} legajo_vendedor = { 40 , "Juan
Eneene" , 1200.50 , "Asignado a zona A" } ;
struct legajo legajo_programador = { 23 , "
Jose Perez" , 2000.0 , "Asignado a zona B"
} ;
Acá se utilizaron las dos modalidades de
definición de variables , inicializandolas a ambas .
|