int n=9;
double d=static_cast<double>(n);
cout<<n<<", "<<d<<endl;
double t=reinterpret_cast<double&>(n);
cout<<", "<<t<<endl;
static_cast在编译时使用类型信息转换,在转换执行必要地检测,其操作数相对时安全的,reinterpret_cast仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。第一段代码输出正确,第二段代码中t值是不正确的。这是因为reinterpret_cast仅仅是复制了n的比特位到d,没有进行必要地分析