MST

星途 面试题库

面试题:C++中引用与指针内存占用差异分析

在32位和64位系统下,分别说明C++中指针和引用的内存占用情况。假设有如下代码:`int num = 10; int* ptr = # int& ref = num;`,请分析`ptr`和`ref`在不同系统下的内存占用,并解释原因。
34.4万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

32位系统

  • 指针ptr:占用4个字节。因为在32位系统中,地址总线是32位的,指针用于存储内存地址,所以需要4个字节(32位)来存储地址。
  • 引用ref:从概念上来说,引用是对象的别名,在底层实现上通常和指针类似,也占用4个字节。它内部存储的是所引用对象的地址,由于32位系统地址长度为32位,所以占用4字节。

64位系统

  • 指针ptr:占用8个字节。64位系统的地址总线是64位,指针存储内存地址需要8个字节(64位)来存放地址信息。
  • 引用ref:同样,引用在底层实现上类似指针,在64位系统下也占用8个字节,因为它存储的是所引用对象的64位地址。