|
REGLAS PARA EL USO DE ESTRUCTURAS
Lo primero que debemos estudiar es el método
para dirigirnos a un miembro particular de una estructura .Para ello existe un operador
que relaciona al nombre de ella con el de un miembro , este operador se representa con el
punto ( . ) , así se podrá referenciar a cada uno de los miembros como variables
individuales , con las particularidades que les otorgan sus propias declaraciones ,
internas a la estructura.
La sintaxis para realizar ésta referencia es :
nombre_de_la_estructura.nombre_del_miembro , así podremos escribir por ejemplo , las
siguientes sentencias
strut posicion_de {
float eje_x ;
float eje_y ;
float eje_z ;
} fin_recta , inicio_recta = { 1.0 , 2.0 , 3.0 ) ;
fin_recta.eje_x = 10.0 ;
fin_recta.eje_y = 50.0 ;
fin_recta.eje_z = 90.0 ;
if( fin_recta.eje_x == inicio_recta.eje_x )
Es muy importante recalcar que , dos estructuras
, aunque sean del mismo tipo , no pueden ser asignadas ó comparadas la una con la otra ,
en forma directa , sino asignando ó comparandolas miembro a miembro. Esto se vé
claramente explicitado en las líneas siguientes , basadas en las declaraciones
anteriores:
fin_recta = inicio_recta ;
/* ERROR */
if( fin_recta >>= inicio_recta );
/* ERROR */
fin_recta.eje_x = inicio_recta.eje_x ; /*
FORMA CORRECTA DE ASIGNAR */
fin_recta.eje_y = inicio_recta.eje_y ; /*
UNA ESTRUCTURA A OTRA */
fin_recta.eje_z = inicio_recta.eje_z ;
if( (fin_recta.eje_x >>=
inicio_recta.eje_x) && /* FORMA CORRECTA DE */
(fin_recta.eje_y >>= inicio_recta.eje_y)
&& /* COMPARAR UNA */
(fin_recta.eje_z >>= inicio_recta.eje_z) )
/* ESTRUCTURA CON OTRA */
Las estructuras pueden anidarse , es decir que
una ó mas de ellas pueden ser miembro de otra . Las estructuras también pueden ser
pasadas a las funciones como parámetros , y ser retornadas por éstas , como resultados .
|