做一道水题的时候突然发现一些问题:
定义了一个int变量B=90;直接用%d输出 int(B * 0.3) 输出来是26...
但是换一种方法就输出27了:
问题出在哪?
C++中最好不要使用C中的的强制类型转换,转换后可能会带来各种各样的麻烦,在C++提供了如下四种形式:
const_cast(expression)
dynamic_cast(expression)
reinterpret_cast(expression)
static_cast(expression) ,
是四种新风格的强制转型,从而实现C++中的类型安全。使用C中的强制类型转换可能会产生数值截断、内存扩张等问题,有可能会遇到各种各样的问题,有些可能很容易被察觉,有些极难察觉而且不会有提示。
我测试了没有问题啊