//在有序顺序表中插入x,插入后仍为有序的。//递增排序顺序表#define length 256#include "stdio.h"#include "stdlib.h"struct { int a[length]; int n; int listsize;}L;void sort(int *b,int n){ int j,i,k,temp; for(i=0;i<n;++i) { j=i; for(k=i+1;k<n;k++) if (b[k]<b[j]) { j=k; } if(j!=i) { temp=b[j]; b[j]=b[i]; b[i]=temp; } } };//sort has been true//插入函数void insert(int *b,int x,int n){ int i,j=n,temp; for(i=0;b[i]<x&&i<n;i++); while(j>i) { b[j]=b[j-1]; j--; } b[i]=x;}main(){ int i; int x; printf("请输入表中数据个数n\n"); scanf("%d",&L.n); if (L.n>length) { printf("溢出"); return 0; } for(i=0;i<L.n;i++) {printf("请输入表中数据a[%d]\n\n",i); scanf("%d",&L.a[i]); }//print data over sort(L.a,L.n); for(i=0;i<L.n;i++) printf("%d\n",L.a[i]); printf("please input the number you want to insert\n"); scanf("%d",&x); insert(L.a,x,L.n); for(i=0;i<=L.n;i++) printf("%d\n",L.a[i]);}这段程序的子函数时怎样将原数据改变顺序或者插入的呀?我怎么想不明白,指针不是调用地址么,地址的转换怎么会导致数据的调换呢?