C语言数组长度怎么算的

2024年11月29日 14:49
有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*(指针),数组名作为实参传入函数的是数组首元素的地址(即指针)