Duda con punteros en c++

Iniciado por retr02332, 2 Junio 2020, 17:26 PM

0 Miembros y 1 Visitante están viendo este tema.

retr02332

Hola a todos

Pasa que tengo el siguiente 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:

CitarNumero: 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.


Eternal Idol

Código (c++) [Seleccionar]
cout<<"Numero: "<<*dirMemory_number<<endl;
cout<<"Direccion de la variable: "<<&dirMemory_number<<endl;
cout<<"Direccion a la que apunta: "<<dirMemory_number<<endl;
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

cpu2

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.