【摘要】:我们之前讲过C++有几个自己的类型转换操作符,现在在讲解了指针以后,我们就可以比较好地讲解const_cast和reinterpret_cast了。const_cast的作用是将一个变量转换成const限定的常量。reinterpret的意思是重新解读,而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的作用就是将一个类型的指针转换成另一个类型的指针,而指针指向的内存将被原封不动地重新解读。当然,这也是一种比较危险的操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。