1.36、指针占用的大小是多少?

指针的大小由CPU架构的地址总线宽度决定,通常对应处理器的字长(word size),即CPU一次能处理的地址位数。

在32位系统(或32位CPU架构)上,指针大小是4字节(32位),因为地址空间用32位表示。

在64位系统(或64位CPU架构)上,指针大小是8字节(64位),对应64位地址空间。

这意味着,无论指针指向的数据类型是什么,所有指针变量的大小都是相同的,因为它们存储的都是内存地址,而地址长度由CPU架构决定。

总结来说,指针大小反映了CPU能够寻址的最大内存空间,32位CPU最大寻址4GB内存,64位CPU则能寻址更大空间,因此指针大小相应为4字节或8字节。

此外,指针大小与编译器的数据模型(如ILP32、LP64等)相关,不同平台可能存在差异,但主流桌面和服务器环境遵循上述规律。

简洁示例:

std::cout << sizeof(void*) << std::endl; // 32位系统输出4,64位系统输出8

这样理解指针大小,有助于把握程序在不同平台上的内存布局和兼容性。
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)

阅读剩余
THE END