概述
举例:
- #include <iostream>
- using namespace std;
- int main()
- {
- int n = 9;
- long d = reinterpret_cast<long&> (n);
- double f1 = static_cast<double> (n);
- double f2 = reinterpret_cast<double&> (n);
- cout<<"d = "<<d<<endl;
- cout<<"f1 = "<<f1<<endl;
- cout<<"f2 = "<<f2<<endl;
- getchar();
- return 0;
- }
输出:
d = 9
f1 = 9
f2 = -9.25596e+061
解释:
将一个变量从 int 转换到 double。 这些类型的二进制表达式是不同的。
reinterpret_cast 操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。在进行计算以后, f2包含无用值. 这是因为 reinterpret_cast 仅仅是复制 n 的比特位到f2, 没有进行必要的分析。
要将整数 9 转换到双精度整数 9,static_cast 需要正确地为双精度整数 d 补足比特位。因此其结果为 9。
转载于:https://blog.51cto.com/qsjming/530554
最后
以上就是负责电话为你收集整理的C++类型转换符介绍的全部内容,希望文章能够帮你解决C++类型转换符介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复