Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: retr02332 en 2 Junio 2020, 17:26 pm



Título: Duda con punteros en c++
Publicado por: retr02332 en 2 Junio 2020, 17:26 pm
Hola a todos

Pasa que tengo el siguiente código

Código:
#include<iostream>
using namespace std;

int main(){
    int numero = 20;
    int *dirMemory_number;
    dirMemory_number = &numero;

    // Para imprimir el valor y la dirección de memoria de una variable normal.

    cout<<"Numero: "<<numero<<endl;
    cout<<"Dirección: "<<&numero<<endl;

    // Para imprimir el valor y la dirección de memoria de un puntero.

    cout<<"Numero: "<<*dirMemory_number<<endl;
    cout<<"Dirección: "<<&dirMemory_number<<endl;

    return 0;
}

Y esta es su respectiva salida:

Citar
Numero: 20
Dirección: 0x7ffcd7ea466c
Numero: 20
Dirección: 0x7ffcd7ea4660


Los punteros, según tengo entendido, almacenan la dirección de memoria de otra variable. Ahora, si vemos mi código, podrán ver que son dos direcciones de memoria diferentes.

¿Es un error de mi código, o porque es que las direcciones no son iguales?

Muchas gracias.



Título: Re: Duda con punteros en c++
Publicado por: Eternal Idol en 2 Junio 2020, 17:39 pm
Código
  1. cout<<"Numero: "<<*dirMemory_number<<endl;
  2. cout<<"Direccion de la variable: "<<&dirMemory_number<<endl;
  3. cout<<"Direccion a la que apunta: "<<dirMemory_number<<endl;


Título: Re: Duda con punteros en c++
Publicado por: xv0 en 2 Junio 2020, 17:40 pm
Hola

Está bien, creo que lo has entendido mal. En los dos primeros printf muestra el valor de la variable y su dirección. En los dos segundos el primer printf muestra el valor de la variable ya que está apuntando a esta (almacena su dirección), el por qué no te muestra la dirección de la variable es por qué el mismo puntero tiene su dirección, es una dirección que almacena otra.

Saludos.