Reinterpret_cast强制类型转换

它是4中C++强制类型转换中最为强力的,可以实现任意两个类型之间的转换,并不限于指针,但是源类型必须是指针。
C++ Primer Plus说目的类型大小要足以装下源类型,而且函数指针与数据指针之间不能互相转换,但是经我验证,前者并不成立不成立。
如下图所示:

Reinterpret_cast强制类型转换_第1张图片

因为char 是指针它占用4byte,而char占用1byte,此时1byte装不下char,但是转换成功了。虽然事实如此,但是C++的确不支持这种转换的,而C却支持。
再看下图:
Reinterpret_cast强制类型转换_第2张图片

如上图所示把一个函数指针转换成数据类型果然失败了。

你可能感兴趣的:(Reinterpret_cast强制类型转换)