It is not required that all types of pointers have the same size and alignment, which does not allow one type of integer type to have the same size and alignment for all types of pointers.
Of course, object pointers, function pointers, and member pointers have different requirements. But on some platforms, even char* and int* are of different sizes.
source share