将数组a中n个整数按相反顺序存放
int main(){
void inv(int *x,int n);//声明inv函数
int i,a[10];
for(i=0;i<10;i++){
scanf("%d",&a[i]);//输入数组元素
}
printf("\n");
printf("转换前:\n");
for(i=0;i<10;i++){
printf("%d ",a[i]);//输出转换前数组元素
}
printf("\n");
inv(a,10);//调用inv函数 初始化 *x=a[0] 的地址
printf("转换后:\n");
for(i=0;i<10;i++){
printf("%d ",a[i]);//输出转换后数组元素
}
printf("\n");
}
void inv(int *x,int n){ //*x=a[0]
int *p,temp,*i,*j,m=(n-1)/2;
i=x; //初始化i为a[0] 的地址
j=x+n-1;//初始化j为 a[9]的地址
p=x+m;//初始化p为数组的一半
for(;i<=p;i++,j--){//利用i对数组进行递归
temp=*i;// *i与*j交换
*i=*j;
*j=temp;
}
}