举例:

 
  
  1. #include <iostream>  
  2. using namespace std;  
  3.  
  4. int main()  
  5. {  
  6.     int n = 9;  
  7.  
  8.     long d = reinterpret_cast<long&> (n);  
  9.     double f1 = static_cast<double> (n);  
  10.     double f2 = reinterpret_cast<double&> (n);  
  11.  
  12.     cout<<"d = "<<d<<endl;  
  13.     cout<<"f1 = "<<f1<<endl;  
  14.     cout<<"f2 = "<<f2<<endl;  
  15.  
  16.     getchar();  
  17.     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。