ここに私のテストコードがあります:
#define print(A) cout << #A << " = " << A << endl;
int main()
{
const int e = 2;
int *p = (int *)&e;
*p = 4;
print(e);
print(*p);
print(&e);
print(p);
}
結果:
e = 2;
*p = 4;
&e = 0xbfc6b458;
p = 0xbfc6b458;
"p" は同じアドレスに従って "e" を指しているため、*p と "e" はどのように異なるのでしょうか? これは危険ですよね?