在 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
值。你正在尝试做一些不允许的事情,所以你应该有像这样的未定义行为。
运行 代码如下:
#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
值。你正在尝试做一些不允许的事情,所以你应该有像这样的未定义行为。