Что здесь происходит?
const int a = 0;
const int *pa = &a;
int *p = const_cast<int*>(pa);
*p = 1; // undefined behavior ??
cout << a << *p; // ??
Мой компилятор выводит 0 и 1, но адрес «a» и значение «p» совпадают, поэтому я не понимаю, как это возможно.