C++的一个指针占内存几个字节?

C++指针的内存占用取决于编译模式:在64位模式下占8字节,32位模式下占4字节。这与CPU寻址能力相关,与地址总线数量对应。尽管指针大小与所指数据类型无关,但其值与程序可寻址内存空间大小匹配。实验显示,在不同编译模式下,short, int, long, long long的字节数不受模式影响。" 108682059,5822687,Mac上安装与启动Nacos详细步骤,"['nacos', 'mac安装', '分布式服务']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++的一个指针占内存几个字节?

结论: 取决于是64位编译模式还是32位编译模式(注意,和机器位数没有直接关系)

  • 在64位编译模式下,指针的占用内存大小是8字节
  • 在32位编译模式下,指针占用内存大小是4字节

实验:(实验环境 vs2019)

  • 64位编译模式下
    在这里插入图片描述

    64位编译模式下,sizeof返回的是unsigned long long类型,占8字节

  • 32位编译模式下
    在这里插入图片描述

    32位编译模式下,sizeof返回的是unsgined int类型,占4字节

分析:
细心的同学可能会发现,为何 int* 和 stu* 类型的指针的大小一样呢?

  • 因为指针的本身的值就是内存地址,它的占用字节数也就是该程序能够访问内存地址的空间大小,比如32位编译模式下,最大寻址为32位,2^32 B=4 GB,指针的值就是在 0x00000000 - 0xFFFFFFFF 范围内的值。因此指针本身占用的内存数和它指向
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值