elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Octubre 2008, 19:35  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios (Moderador: soplo)
| | | |-+  duda sobre punteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: duda sobre punteros  (Leído 486 veces)
maryrisas

Desconectado Desconectado

Mensajes: 62


Ver Perfil
duda sobre punteros
« en: 20 Febrero 2006, 20:15 »

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();
         }
         
En línea
[[JONAS]]

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: duda sobre punteros
« Respuesta #1 en: 23 Febrero 2006, 17:59 »

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
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC