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行中它for循环条件的语句不能计数阵列的大小.......
答案 0 :(得分:0)
int minimum(int arr[])
在编译时元素的数目未知,sizeof(arr)
无法赋值正确的值,它将赋值sizeof(int *)
,因为这是 arr
但是在
void f()
{
int arr[3];
printf("%d\n", sizeof(arr)/sizeof(*arr));
}
arr 的大小在编译时是已知的