代码如下:
int *const *a = nullptr;
int const *const *b = nullptr;
b = a;
为什么这段代码编译运行没有错误? const指针不是说我们不能改吗?
最佳答案
其实我的想法有一个错误:我以为b
是const
所以不能赋值给。但是 b
是可修改的(虽然它指向的是 const
),所以可以赋值给 b
。
换句话说,int const *const *b
不是一个 const
指针,而是一个指向 const
指针的指针,所以它可以改变。
关于c++ - 指向 const int 指针的 Const 指针强制转换为指向 int 指针的 const 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31029830/