在 C 和 C++ 中,我是否保证所有指针都具有相同的字节大小,或者换句话说:
sizeof(void*) = sizeof(char*) = sizeof(int*) = ...
或者有一些不正确的系统?
在 C 和 C++ 中,我是否保证所有指针都具有相同的字节大小,或者换句话说:
sizeof(void*) = sizeof(char*) = sizeof(int*) = ...
或者有一些不正确的系统?
不,标准中没有保证。
有一些例外是一些系统。尽管它在许多典型系统中是固定的,并且取决于该系统的体系结构。例如,在 32 位系统中,指针是 4 个字节。
顺便说一句,uintptr_t
可以保存指针(也许我们可以假设它具有当前系统中指针的最大大小):
uintptr_t
能够保存指针的无符号整数类型