如何正确使用指针数组?
程序代码:#include <stdio.h>
void man(int*a[]);
void exchange(int*x,int*y);
int main()//求输入10个数求最大最小并把最大和最后一个数换最小和第一个数换,其它数的位置不变并输出要求必须用指针;
{
int*a[10],i;
int b[10];
/*
for(i=0;i!=10;i++)
scanf("%d",a[i]);
*/
for(i=0;i!=10;i++)//求最大和最小;这里为什么不能直接写成上面注销的那样呢?运行程序时提示程序出错!
{
scanf("%d",&b[i]);
a[i]=&b[i];
}
man(a);//这里传递过去的是什么呢?
for(i=0;i!=10;i++)
printf("%-4d",*a[i]);
printf("\n");
return 0;
}
void man(int*a[])//求最大和最小;
{
int i,*max,*min;
max=min=a[0];
for (i=1;i!=10;i++)
{
min=a[i]>max?a[i]:max;//这里更是不懂为什么比较地址就能求最大和最小开始写*min=*a[i]>*max?*a[i]:*max;也是不行,后来改成这就行了!
max=a[i]<min?a[i]:min;//
}
exchange(min,a[0]);
exchange(max,a[9]);
}
void exchange(int*x,int*y)//交换位置;
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}










求指点