Salve a tutti,

ho scritto il seguente programmino per capire come funziona il const_cast:

#include<iostream>
using namespace std;

int main() {
const int i = 3;
cout << "Ho i = " << i << " nella locazione di memoria " << &i << endl;
int *ip = const_cast <int *> (&i);
*ip = 4;
cout << "Ho *ip = " << *ip << " nella locazione di memoria "<< ip << endl;
cout << "Ho i = " << i << " nella locazione di memoria " << &i << endl;
return 0;
}
non riesco pero' a spiegarmi l'output del programma:

Ho i = 3 nella locazione di memoria 0xbf848cfc
Ho *ip = 4 nella locazione di memoria 0xbf848cfc
Ho i = 3 nella locazione di memoria 0xbf848cfc

----------------------------------------------
Program exited successfully with errcode (0)
la locazione di memoria e' la stessa ma mi stampa due valori diversi!!!

Qualcuno mi puo' spiegare, please?