вопрос по приведению типов и const, собственно, сабж:
#include <iostream>
int main()
{
const int a = 333;
const int * ap = &a;
int * p = (int*) ap; // <-оно
*p = 444;
std::cout << "*p ="<< *p << "\n" <<"*ap=" << a << "\n"
<< " p = "<< p << "\n" << "ap = " << ap << "\n";
}
output:
*p =444
*ap=333
p = 0x72fdad7ee70c
ap = 0x72fdad7ee70c
вопросы:
1. приведение const в не-const таким способом это UB? (где бы почитать в смысле директ линка на стандарт если это оно?)
2. как по одному адресу могут находиться два — разных — значения?