...
INT36-EX2: Any valid pointer to void can be converted to intptr_t or uintptr_t or their underlying types and back again with no change in value. This includes the underlying types that intptr_t and uintptr_t are based on, if any. Use of types other than Use of underlying types instead of intptr_t or uintptr_t is discouraged, however, because it limits portability.
...