1) When the C-style cast expression is encountered, the compiler attempts to interpret it as the following cast expressions, in this order:
a)
const_cast<new_type>(expression);
b)
static_cast<new_type>(expression), with extensions: pointer or reference to a
derived class is additionally allowed to be cast to pointer or reference to unambiguous base class (and vice versa) even if the base class is
inaccessible (that is, this cast ignores the private inheritance specifier). Same applies to casting
pointer to member to pointer to member of unambiguous non-virtual base;
c) static_cast (with extensions) followed by const_cast;
d)
reinterpret_cast<new_type>(expression);
e) reinterpret_cast followed by const_cast.
The first choice that satisfies the requirements of the respective cast operator is selected, even if it cannot be compiled (see example). If the cast can be interpreted in more than one way as static_cast followed by a const_cast, it cannot be compiled.
в данном случае reinterpret_cast будет эквивалентен сишному.