Comportamiento extraño de const_cast [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Dos valores diferentes en la misma dirección de memoria 6 respuestas

Considere el siguiente código:

Declaro un nuevo final de referencia, asígnelo al valor a vía const_cast. Luego, solo aumento el valor de referencia, imprimo las direcciones y los valores.

#include <iostream>
using namespace std;
int main()
{
    const int a = 7;
    int &b = const_cast<int&>(a);
    ++b;
    cout<<"Addresses  "<<&a<<" "<<&b<<endl;
    cout<<"Values  "<<a<<" "<<b<<endl;
}

//output
Addresses  0x7fff11f8e30c 0x7fff11f8e30c
Values  7 8

¿Cómo puedo tener 2 valores diferentes en la misma dirección?