Как переменная с тем же адресом выдает 2 разных значения? [Дубликат]
На этот вопрос уже есть ответ:
Два разных значения при одном и том же адресе памяти 6 ответовУчти это
#include <iostream>
using namespace std;
int main(void)
{
const int a1 = 40;
const int* b1 = &a1;
char* c1 = (char *)(b1);
*c1 = 'A';
int *t = (int*)c1;
cout << a1 << " " << *t << endl;
cout << &a1 << " " << t << endl;
return 0;
}
Выход для этого:
40 65
0xbfacbe8c 0xbfacbe8c
Это кажется мне почти невозможным, если компилятор не выполняет оптимизацию. Как
,