这是因为数组做型参时,数组名称当作指针使用。这里的int test(int nums[])等价于int test(int *nums)所以sizeof(nums)其实就是计算sizeof(int *)。而在main中int nums[] ={1,2,3,4};,sizeof(nums)计算的是静态数组占用的内存大小。
因为,函数形参int nums[]和int *nums是等价的,即类型为int*(指针),数组名作为实参传入函数的是数组首元素的地址(即指针)