gpt4 book ai didi

c++ - 通过 "const int"指针更改 "int *"。惊喜又有趣

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:04 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Modifying a const through a non-const pointer

让我们先看看下面的代码。非常短的代码:

int main()
{
const int n=9;
int *p=(int*)&n;
*p=5;
cout<<*p<<endl; //result is 5
cout<<n<<endl; // 9
int a=n+1;
cout<<a<<endl; // 10
}

令我惊讶的是,编译器根本没有提示。结果就像我在评论中显示的那样。
但是,如果这或多或少有道理的话。更令人惊讶的是,调试的时候可以看到n的值居然变成了5!
但是,当你使用“n”时,似乎“n”仍然被视为原始值9!
所以我想编译器已经将“n”的原始值存储在其他地方,对吧?那么现在“n”的原始值9存放在哪里呢?
感谢您的帮助!

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