const char *pc; char *p =const_cast<char *> (pc); //正确:但是通过p写值是未定义的行为
这里很奇怪,既然改变运算对象的底层const,不就是为了给它写值么,为什么反而是未定义的行为,感觉好多余。
收起
pc 是 const,但 p 不是 const。 这就是 C 语言指针使用的问题:将指针指向一个 const 的对象,能修改数据,这时编译器不会认为是错误的。
报告相同问题?