在c语言中,如果数组作为参数传递,会退化为指针。
void testPara(int nums[])
{
int len = sizeof(nums) / sizeof(int);
printf("形参数组长度为%d\n", len);
}
int main()
{
int nums[] = {1,2,3,4,5};
int len = sizeof(nums) / sizeof(int);
printf("实参数组长度为%d\n", len);
testPara(nums);
}
输出结果为:
形参数组输出的长度为数组首地址指针的长度,并不是数组实际长度。