面试题答案
一键面试- 计算结果:
sizeof(arr)
的值为20
。因为arr
是一个包含5
个int
类型元素的数组,在常见的系统中,int
类型通常占4
个字节,所以5 * 4 = 20
字节。sizeof(ptr)
的值通常为4
或8
字节。在32位系统中,指针占4
个字节,在64位系统中,指针占8
个字节。ptr
是一个指向int
类型的指针,sizeof
计算的是指针变量本身的大小,而不是指针所指向的内容的大小。
- 内在机制:
- 对于数组:
sizeof
运算符作用于数组时,它返回整个数组所占的内存字节数。数组在内存中是一块连续的存储空间,sizeof
会根据数组元素的类型和元素个数来确定总的字节数。 - 对于指针:
sizeof
运算符作用于指针时,它返回的是指针变量本身在内存中所占的字节数。指针本质上是一个存储内存地址的变量,其大小取决于系统的寻址能力(32位或64位),而与指针所指向的数据类型或实际指向的内存空间大小无关。
- 对于数组: