【发布时间】:2021-04-01 10:07:19
【问题描述】:
在 c++ 程序中使用 sizeof() 函数时,我查看的指针似乎都返回 4 个字节的大小。我在网上看到指针只是整数内存地址。这在 64 位架构中有何意义,因为 64 位架构可能具有无法以 4 个字节访问的内存地址?
【问题讨论】:
-
在 64 位架构中,您(可能)会得到
sizeof(void*) == 8。 -
感谢您的回复。我的电脑是 64 位的,它为 sizeof(void*) 返回 4?
-
那么你正在为 32 位编译。检查编译器选项(或告诉我们您正在使用的编译器)。
-
大多数现代 64 位操作系统支持 32 位模式以实现向后兼容。如果
sizeof(void*) == 4与您同在,那么您可能针对的是 32 位平台,即您的程序将以 32 位模式运行。查看编译器的文档,了解如何构建 64 位程序。