平时用这个关键字多数是在需要去掉常量属性的场合,比如
const int c = 10; int * v = const_cast<int *>(&c); *v = 11;
但是最近的一个项目中正好需要反向的转换,第三方的一个参数需要的形式为:func(int argc, const char* argv[]);公司公用组件开发的程序能提供的第二个参数为char**, 直接使用(const char**)char**进行转换,编译器报错,尝试了n种方法,包括解引用,引用转换等,总是不行,偶然的情况下尝试使用const_cast<const char **> (argv)竟然编译通过了,而且没有问题。原来的知识是const_cast只是去掉const属性,现在来看也是可以为一般常量添加const属性。这一点在我看到的材料里到目前为止均没有谈到这一点,算是对自己敢于突破旧思维的一个肯定,以后继续坚持。敢于尝试非常重要,一手的知识来源于实践!