指针大小由系统架构决定,在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*、成员函数指针或多重继承下的指针在某些复杂情况下可能稍大,但一般仍与普通指针一致。
基本上就这些。指针大小不复杂,但容易忽略平台差异。
以上就是一个C++指针变量本身占用多少字节的内存的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1473996.html
微信扫一扫
支付宝扫一扫