Der reinterpret_cast
Operator ist für gefährliche Umwandlungen! Man kann ihn nämlich für die
Konvertierung zwischen verschiedenen Zeigertypen und zum anderen für
die Konvertierung von Ganzzahlen in Zeiger und umgekehrt einsetzen.
Solche Dinge sind z.T. plattformabhängig.
#include
<iostream>
using
namespace std;
//
gibt einen Hashcode basierend auf einer Adresse zurück
unsigned
short Hash( void* p )
{
unsigned int val = reinterpret_cast<unsigned int>( p );
return static_cast<unsigned short>( val ^ (val >> 16) );
}
int main()
{
int
a[20];
for (
int i = 0; i < 20; i++ )
{
cout << Hash( a + i ) << endl;
}
}
Übersicht
Keywords C++