例题10-7 将数组a中的n个整数按相反顺序存放
#include<stdio.h>
void inv(int *x,int n)
{
int *p,*i,*j,tmp,m=(n-1)/2;
i=x;
j=x+n-1;
p=x+m;
for(;i<=p;i++,j--)
{
tmp=*i;
*i=*j;
*j=tmp;
}
}
int main()
{
int i,a[10]={
3,7,9,11,0,6,7,5,4,2};
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
inv(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
例题10-8 用实参指针变量改写例题10-7
#include<stdio.h>
void inv(int *x,int n)
{
int *p,*i,*j,tmp,m=(n-1)/2;
i=x;
j=x+n-1;
p=x+m;
for(;i<=p;i++,j--)
{
tmp=*i;
*i=*j;
*j=tmp;
}
}
int main()
{
int i,arr[10],*p=arr;
for(i=0;i<10;i++,p++)
scanf("%d",p);
printf("\n");
p=arr;
inv(p,10);
for(p=arr;p<arr+10;p++)
printf("%d ",*p);
}