C++ const:编译器怎么没有给出警告/错误

siv*_*udh 4 c++ const

关于C++ constness的简单问题.

所以我正在阅读这篇文章,然后我尝试了这段代码:

int some_num = 5;
const int* some_num_ptr = &some_num;
Run Code Online (Sandbox Code Playgroud)

为什么编译器不会给出错误或至少发出警告?

我在阅读上述声明的方式中说:

Create a pointer that points to a constant integer
Run Code Online (Sandbox Code Playgroud)

但some_num不是一个常数整数 - 它只是一个整数.

Jar*_*Par 12

问题在于你如何阅读代码.它应该实际上读

创建一个指向整数的指针,其中无法通过指针修改该值

const int*C++中的A 不能保证它int是常量.它只是一个工具,使通过指针修改原始值变得更加困难