通过指针引用数组元素-将数组a中n个整数按相反顺序存放
可参考:
两个顺序线性表的合并,关于数组指针的操作。
http://blog.youkuaiyun.com/jiezou007/article/details/7906606
参考:字符串的反转,理解反转的两种方式
http://blog.youkuaiyun.com/jiezou007/article/details/7959286
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
//void inv(int x[],int n);
void inv(int *x,int n);
int i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("the original array:\n");
for (i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
inv(a,10);
printf("the array has been inverted:\n");
for (i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
getch();
}
/*void inv(int x[],int n)//形参x是数组名,实际上是一个指针,[]实际上是一个变址运算符
{
int temp,i,j,m=(n-1)/2;
for (i=0;i<=m;i++)
{
j=n-1-i;
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
return;
}*/
void inv(int *x,int n)//形参x为指针变量
{
int *p,temp,*i,*j,m=(n-1)/2;
i=x;j=x+n-1;p=x+m;
for (;i<=p;i++,j--)
{
temp=*i;
*i=*j;
*j=temp;
}
}