指针大小由系统架构决定,在32位系统上占4字节,64位系统上占8字节,与指向类型无关,可通过sizeof查看,现代系统中各类指针大小基本一致。

一个C++指针变量本身占用的内存大小取决于系统的架构和编译器,而不是它所指向的数据类型。
指针大小由系统架构决定
指针存储的是内存地址,因此它的大小与系统的寻址能力有关:
- 在32位系统上,内存地址是32位(4字节),所以指针占4字节
- 在64位系统上,内存地址是64位(8字节),所以指针占8字节
这适用于所有类型的指针,比如 int*、char*、double*、函数指针或类对象指针,它们的大小都一样。
如何查看指针大小
可以用 sizeof 操作符来查看指针在当前平台上的大小:
立即学习“C++免费学习笔记(深入)”;
#include iostream>int main() {
int* p;
std::cout return 0;
}
在64位系统上,输出通常是:8;在32位系统上是:4。
注意特殊情况
某些嵌入式系统或特殊平台可能有不同的指针模型,比如存在近指针(near)和远指针(far),但现代桌面和服务器系统中基本统一。
另外,void*、成员函数指针或多重继承下的指针在某些复杂情况下可能稍大,但一般仍与普通指针一致。
基本上就这些。指针大小不复杂,但容易忽略平台差异。









