如何正确使用指针数组?
程序代码:
#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; }