c++ - 指向 const int 指针的 Const 指针强制转换为指向 int 指针的 const 指针

标签 c++ pointers c++11 casting constants

代码如下:

int *const *a = nullptr;
int const *const *b = nullptr;

b = a;

为什么这段代码编译运行没有错误? const指针不是说我们不能改吗?

最佳答案

其实我的想法有一个错误:我以为bconst所以不能赋值给。但是 b 是可修改的(虽然它指向的是 const),所以可以赋值给 b

换句话说,int const *const *b 不是一个 const 指针,而是一个指向 const 指针的指针,所以它可以改变。

关于c++ - 指向 const int 指针的 Const 指针强制转换为指向 int 指针的 const 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31029830/

相关文章:

c++ - 这两个函数调用在内存管理方面的差异?

c++ - std::atomic 中的任何内容都是免等待的?

c - 从整数数组中提取 float

c++ - 成员函数后面的成员函数叫什么,我该如何编写?

c++ - 为什么在基于范围的初始化程序中使用临时对象会导致崩溃?

c++ - 在基于范围的 for 循环中定义引用

c++ - 从 QObject 继承时,将复制构造函数设置为默认值不起作用

c++ - 类方法指向其他类的其他方法

c - 访问字符串数组

c++ - 这里有更多 C++ 中未定义的行为,很抱歉这个问题,但又是 UB