//在有序顺序表中插入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]);}这段程序的子函数时怎样将原数据改变顺序或者插入的呀?我怎么想不明白,指针不是调用地址么,地址的转换怎么会导致数据的调换呢? 收起