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 范围内的值。因此指针本身占用的内存数和它指向