反序输出数据
下面是我写的后看了课本的代码发现了点不同(下面表注有)。我自己在草稿纸上画了个示意图发现课本上的好像有点道理。比如我输入 1 2 3 4 5 6 如果用I〈=P,那么P=X+2就指向3,
但要是用I〈 P,P=X+2还是指向3,这时I〈P=X+2也就是说 I 最多可以指到就指向X+1,就是指到2,明显后面的数3和4就排不了的。可是我不管用哪一种输入奇数和偶数都可以排得出。这是怎么回事呢??补充下,我数学不太好。。。
void reverse(int *x,int n)
{
int *p,*i,*j,m=(n-1)/2,t;
i=x;j=x+n-1;p=x+m;
for(;i<p;i++,j--) /* 课本上的是I〈=P */
{t=*i;*i=*j;*j=t;}
}
main()
{
int a[10],*p=a;
printf("\n");
for(;p<a+10;p++)
scanf("%d",p);
printf("\n");
p=a;
reverse(p,10);
for(;p<a+10;p++)
printf("%d ",*p);
}