The common folklore says that:
The type system exists for a reason. Integers and pointers are distinct types, casting between them is a malpractice in the m
Pointer values can also be a useful source of entropy for seeding a random number generator:
int* p = new int(); seed(intptr_t(p) ^ *p); delete p;
The boost UUID library uses this trick, and some others.