Como uma variável no mesmo endereço está produzindo 2 valores diferentes? [duplicado
Esta pergunta já tem uma resposta aqui:
ois valores diferentes no mesmo endereço de memóri respostasConsidere isto
#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;
}
A saída para isso é:
40 65
0xbfacbe8c 0xbfacbe8c
Isso quase parece impossível para mim, a menos que o compilador esteja fazendo otimizações. Como
,