首页 理论教育 const_cast和reinterpret

const_cast和reinterpret

时间:2023-08-20 理论教育 版权反馈
【摘要】:我们之前讲过C++有几个自己的类型转换操作符,现在在讲解了指针以后,我们就可以比较好地讲解const_cast和reinterpret_cast了。const_cast的作用是将一个变量转换成const限定的常量。reinterpret的意思是重新解读,而reinterpret_cast就是将一段数据按照二进制表示重新解读成另一种数据,所以它其实并没有对数据做任何改变,只是改变了类型。

const_cast和reinterpret_cast

我们之前讲过C++有几个自己的类型转换操作符,现在在讲解了指针以后,我们就可以比较好地讲解const_cast和reinterpret_cast了。

const_cast的作用是将一个变量转换成const限定的常量。

动手写6.2.13

动手写6.2.13展示了const_cast的用法,我们看到intNum在转换前是可以修改的变量,在转换以后就变成常量,不能再进行修改了。

reinterpret_cast比较特殊。reinterpret的意思是重新解读,而reinterpret_cast就是将一段数据按照二进制表示重新解读成另一种数据,所以它其实并没有对数据做任何改变,只是改变了类型。(www.xing528.com)

动手写6.2.14

动手写6.2.14展示了reinterpret_cast的用法,运行结果如图6.2.14所示:

图6.2.14 reinterpret_cast

在示例中,我们可以看到reinterpret_cast将一个指向整数的指针转换成了指向字符的指针,也就是C风格的字符串。十六进制的62、63和64在ASCII码中分别代表b、c和d,所以最后打印出了“bcd”。关于C风格的字符串我们在本章“知识拓展”部分还会进行详解,在这里我们只需要了解reinterpret_cast的作用就是将一个类型的指针转换成另一个类型的指针,而指针指向的内存将被原封不动地重新解读。当然,这也是一种比较危险的操作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈