Provando invece con le printf:

#include<stdio.h>

int main() {
const int i = 3;
printf("Ho %d nell locazione di memoria %d\n",i,&i);
int *ip = const_cast <int *> (&i);
*ip = 4;
printf("Ho %d nell locazione di memoria %d\n",*ip,&ip);
printf("Ho %d nell locazione di memoria %d\n",i,&i);
}
ho come risultato:

Ho 3 nell locazione di memoria -1075404060
Ho 4 nell locazione di memoria -1075404064
Ho 3 nell locazione di memoria -1075404060
il problema di prima era nel cout. Come faccio allora a fare questo cast ?