有些朋友可能在运行C语言代码时使用sizeof关键字取数组时产生过疑问,例如在函数中传递了一个数组的数组名,想计算数组长度时,发现了以下结果:
打印台显示数组大小为1,这是为什么呢?
其实是由于在函数传递参数arr[]时,该形参传递的是数组首元素的地址,而不是整个数组空间,因此计算的结果为1。(X86系统存储地址空间为32位,由于存放的整型元素大小为4字节,即32位,结果为1,X64系统则为64位 ,结果为2)。
因此,想要计算数组长度,建议在主函数中定义数组,并用sizeof关键字计算数组大小。