数组作为函数参数查找数组长度时出错

Array as function parameter error finding the length of the array

本文关键字:数组 出错 参数 函数 查找      更新时间:2023-10-16
1.  int minimum(int arr[]){
2.
3.     int min,pos = 0;
4.     min =  arr[0];
5.     int i;
6.     for(i = 0;i<(sizeof(arr)/sizeof(*arr));i++){
7.         if(arr[i]<min){
8.             min = arr[i];
9.             pos = i;
10.        }
11.     }
12.     return arr[pos];
13.  }

在第 6 行中,对于循环条件中的状态无法计算数组的大小......

int minimum(int arr[])

元素的数量在编译时是未知的,sizeof(arr)不能值正确的值,它会值sizeof(int *),因为这是 arr 的类型

但在

void f()
{
   int arr[3];
   printf("%dn", sizeof(arr)/sizeof(*arr));
}

ARR 的大小在编译时是已知的