gpt4 book ai didi

c++ - const_cast : same address but different value?

转载 作者:行者123 更新时间:2023-11-30 02:49:45 24 4
gpt4 key购买 nike

<分区>

C++ 新手和学习 const_cast — 被下面的代码弄糊涂了:

int main(){
const int j = 1;
int * p = (int *)(&j);
cout << j << ' ' << *p << endl;
cout << &j << ' ' << p << endl;
*p = 2;
cout << j << ' ' << *p << endl;
cout << &j << ' ' << p << endl;

const int k = 1;
int * q = const_cast<int*>(&k);
cout << k << ' ' << *q << endl;
cout << &k << ' ' << q << endl;
*q = 2;
cout << k << ' ' << *q << endl;
cout << &k << ' ' << q << endl;

return 0;
}

输出是

1 1
00A2FD9C 00A2FD9C
1 2
00A2FD9C 00A2FD9C
1 1
00A2FD84 00A2FD84
1 2
00A2FD84 00A2FD84

谁能告诉我为什么地址(&i 和 p,或 &j 和 q)相同,但值(i 和 *p,或 j 和 *q)不同?我正在使用 Visual Studio 2013RC。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com