Mi duda es si teniendo una variable y un puntero,e inicializas la variable a 0,haces que el puntero apunte a a la variable y por ultimo al puntero le asignas el valor de 5,¿el nuevo contenido de la variable es el valor del puntero?si es así,¿porqué es así?no entiendo
ejemplo:
int main(){
long dato=0;
long *p_dato;
*p_dato=5;
printf("\n\t el nuevo contenido de dato es:%ld",dato);
printf("\n\t el nuevo contenido de la dir. almacenada es: %ld",*p_dato);
getch();
}
Si acabas de iniciarte en punteros, al principio es un poco lioso pero una vez que coges bien el concepto es fácil:
veamos tu cuando declaras una variable de Tipo lo que sea por ejemplo long dato = 0 lo que estas haciendo realmente es reservar una dirección de memoria por ejemplo la direccion AAAAA cuyo contenido la inicializas a un 0
cuando haces long dato = 0 es como si a la dirección de memoria AAAA la llamaras dato y la inicializas a 0.
por otro lado un Puntero lo que hace es apuntar a una dirección de memoria por lo que si haces
long *p_dato ;
p_dato = dato;
lo que haces realmente es que el puntero apunte a la dirección de memoria AAAA cuyo contenido es 0 ahora mismo.
Ahora tu con el puntero puedes modificar el valor de lo que contiene esa dirección de memoria. por lo que si haces
*p_dato = 5;
estas haciendo que la dirección AAAA contenga ahora no un 0 sino un 5
por eso cuando haces un printf de la variable dato( que en realidad es la dirección AAAA) ya no vale 0 sino 5
Espero que esto te ayude a comprender un poco mejor el tema de los punteros