NULL == (void*)0.
void *p = 0; intptr_t i = 0;
Even less intuitively, it is not guaranteed that `(void*)i == p` since `i` is not an integer constant expression, even if the value is known to be 0.