MST

星途 面试题库

面试题:C++ sizeof运算符与指针及引用

已知代码段:int arr[5] = {1, 2, 3, 4, 5}; int *ptr = arr; int &ref = arr[0]; 分别计算 sizeof(arr)、sizeof(ptr) 和 sizeof(ref) 的值,并阐述结果差异的原因。
11.8万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. sizeof(arr)
    • 值为20
    • 原因:arr是一个包含5个int类型元素的数组,在常见系统中int类型通常占4个字节,所以sizeof(arr)5 * 4 = 20字节。
  2. sizeof(ptr)
    • 值通常为8(64位系统)或4(32位系统)。
    • 原因:ptr是一个指针,指针在不同系统中占用空间不同,64位系统指针一般占8个字节,32位系统指针一般占4个字节,它存储的是内存地址。
  3. sizeof(ref)
    • 值为4。
    • 原因:ref是对arr[0]的引用,本质上它是arr[0]的别名,arr[0]int类型,int类型在常见系统中占4个字节,所以sizeof(ref)等于sizeof(int),即4字节。