#include<stdio.h>
int main()
{
int a[100];
int *s[100];
int n;
int *p2=a;
printf("请输入值的个数:");
scanf("%d",&n);
for(int **p1=s;p1<=s+n-1;p1++,p2++){
scanf("%d",p2);
*p1 = p2;
}
void sort(int **p1,int n);
sort(s,n);
printf("按从小到大输出为:");
for(p1=s;p1<=s+n-1;p1++){
printf("%d ",**p1);
}
printf("此时数组的存储情况为:");
for(p2=a;p2<=a+n-1;p2++){
printf("%d ",*p2);
}
printf("\n");
return 0;
}
void sort(int **p,int n)
{
for(int **p1=p;p1<=p+n-2;p1++){
for(int **p2=p1+1;p2<=p+n-1;p2++){
if(**p1>**p2){
int *s = *p1;
*p1 = *p2;
*p2 = s;
}
}
}
}
利用
指针数组, 将指针数组分别指向int数组中的元素,然后再
sort函数中排序时,排的是指针数组的顺序,并且输出时也是按照指针数组输出的,所以全程最初的int数组中的存储情况为发生变化.