C语言数组长度怎么算的

2024-11-29 14:49:13
推荐回答(2个)
回答1:

这是因为数组做型参时,数组名称当作指针使用。
这里的int test(int nums[])等价于int test(int *nums)
所以sizeof(nums)其实就是计算sizeof(int *)。

而在main中int nums[] ={1,2,3,4};,sizeof(nums)计算的是静态数组占用的内存大小。

回答2:

因为,函数形参int nums[]和int *nums是等价的,即类型为int*(指针),数组名作为实参传入函数的是数组首元素的地址(即指针)