elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


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

Desconectado Desconectado

Mensajes: 69


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

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 pm »

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 Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[duda] sobre punteros y signed
Programación C/C++
AlxSpy 6 2,317 Último mensaje 9 Enero 2011, 20:13 pm
por AlxSpy
Duda con punteros (error programa)
Programación C/C++
apoeti 7 2,212 Último mensaje 12 Agosto 2012, 01:19 am
por rir3760
Duda sobre punteros
Programación C/C++
adissenys 3 1,379 Último mensaje 17 Noviembre 2012, 22:59 pm
por Ferno
Duda, Sobre mi code de vector de punteros
Programación C/C++
anonimo12121 2 1,110 Último mensaje 21 Febrero 2013, 11:19 am
por anonimo12121
Duda sobre punteros en C
Programación C/C++
mester 4 2,054 Último mensaje 29 Julio 2015, 22:46 pm
por mester
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines