#include<stdio.h> void main() { void inv(int *x,int n); int i,arr[10],*p=arr; for(i=0;i<10;i++,p++) scanf("%d",p); p=arr; /*要赋值*/ inv(p,10); for(p=arr;p<arr+10;p++) printf("%d",*p); } void inv(int *x,int n) { int *i,*j,m=(n-1)/2,temp,*p; i=x;j=x+n-1;p=x+m; for(;i<=p;i++,j--) { temp=*i;*i=*j;*j=temp; } } 书上的#include "stdio.h" void main() { void inv(int *x,int n); int i,arr[10],*p=arr; for(i=0;i<10;i++,p++) scanf("%d",p); p=arr; inv(p,10); for(p=arr;p<arr+10;p++) printf("%d",*p); } void inv(int *x,int n) { int i,j,m=(n-1)/2,temp; for(i=0;i<=m;i++) { j=n-1-i; temp=*(x+i);*(x+i)=*(x+j);*(x+j)=temp; } } 自己的 将数组arr中的十个数字按相反顺序存放。 实参和形参 都 用 指针变量做 我想知道为什么要改成第一个那么复杂的指针。 指点一下,谢啦。