在 C++ 中使用指针更改 const 变量的值

Changing the value of a const variable using pointer in C++

运行 代码如下:

#include <iostream>

int main()
{
   const int NUM = 1;
   int *p = (int *)&NUM;
   *p = 2;

   std::cout << *p << "\n";
   std::cout << NUM << "\n";
   return 0;
}

上面程序的输出是: 2个 1

预期的输出是: 2个 2

谁能解释一下为什么 NUM 的值为 1? 同样可以用 https://www.onlinegdb.com/

来测试

一个 const 是一个 read-only 值。你正在尝试做一些不允许的事情,所以你应该有像这样的未定义行为。