声明:这是本人学习的一点点心得,希望对大家有帮助。
void minmax(int a[],int len,int *min,int *max)
{int i;
*min=*max=a[0];
for(i=1;i<len;i++)
{
if(a[i]<*min)
{*min=a[i];}
if(a[i]>*max)
{*max=a[i];}
}
}
int main()
{
int a[]={1,2,3,6,7,11,5,16,9,10};
int min,max;
minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);
printf("min=%d,max=%d\n",min,max);
return 0;
}
1.函数参数中表中的数组实际上是指针
2.sizeof(a)==sizeof(int *)
3.但是可以用数组的运算符[]进行运算
以下四种函数原型是等价的
int sum(int *ar,int n);
int sum(int *,int );
int sum(int ar[],int n);
int sum(int [],int);
注意: 假设 int b[]; 可以看作 int *const b;
b[]=a; 错误的; 数组变量不能被赋值,可以将数组变量看作const指针,不能被赋值。