切记:
数组作为形参,退化为指针,sizeof(指针)=4,因此不能再被调用函数中利用sizeof(数组名)/sizeof(数组类型)求数组的长度
举个栗子:
void sort(int array[])
{
int j=0,n=0;
int max=array[0];
for(j=1;j<sizeof(array)/sizeof(int);j++)
{
if(array[j]>max)
{max=array[j];n=j;
}
}
printf("the max is :%d\n",max);
printf("it is the %d th number.\n",n);
}
int main()
{
int a[]={1,2,23,45,28,100,89,3};
int length=sizeof(a)/sizeof(int);
sort(a);
return 0;
}
被调用函数将只执行一次,得不到正确的结果。