hola amigo.
bueno mira esto es asi.
el operador "->" solo se usa cuando asignas como puntero a una estructuta o la pasas por referencia en funcione entonces hay tambien lo puede usar para poder acceder a los datos.
el ". " solo lo pudes usar para structuras sencillas y manejarlas en ocal osea solo en el main.
bueno aqui te dejo un codigo donde estan las formas en las forms en las que se puede usar este operador y el punto y si analizas con cuidado solo te puse cosas que significan lo mismo soloq ue las puede poner de dirferente manera a esto me refiero con las forma de asignarle nombre a la sestructuras.
bueno con la explicacion de vangodp creo que podras entender todo el codigo.
Código C:
Ver original#include <stdio.h>
/*ejemplod e estructura con puntero*/
struct ejemplo{
char *nombre;
int edad;
};
//estructura simple para pasar por referencia en una funcion
struct ejemplodos{
char *nombredos;
int edaddos;
}datoss;
void ejemplouno(struct ejemplo *puntero);
void ejemplodos(struct ejemplodos *datoss);
int main ()
{
struct ejemplo datos, *puntero;
puntero = &datos;
puntero->nombre = "persona uno";
puntero->edad= 25;
printf("\n\nnombre: %s\n edad:%d\n", puntero
->nombre
, puntero
->edad
);
ejemplouno(puntero);
datoss.nombredos= "persona en local y estructura simple";
datoss.edaddos= 35;
printf("\n\nnombre: %s\n edad:%d\n", datoss.
nombredos, datoss.
edaddos); //se pasa los valores de datoss pero se le hace referencia ala direccion de memoria para poder trabar con ellos de la funcion
ejemplodos(&datoss);
}
void ejemplouno(struct ejemplo *puntero)
{
puntero->nombre = "ejemplo";
puntero->edad= 15;
printf("\n\nnombre: %s\n edad:%d\n", puntero
->nombre
, puntero
->edad
); }
void ejemplodos(struct ejemplodos *datoss)
{
datoss->nombredos= "persona dos";
datoss->edaddos= 25;
printf("\n\nnombre: %s\n edad:%d\n", datoss
->nombredos
, datoss
->edaddos
); /* pudes probar descomentando esto para que vea que no se puede usar elpunte mas que en local.
datoss.nombredos= "persona en local y estructura simple";
datoss.edaddos= 35;
printf("\n\nnombre: %s\n edad:%d\n", datoss.nombredos, datoss.edaddos);*/
}
bueno espero qe te sirva.
saludos.
drewermerc.