通過指針引用數組元素-將數組a中n個整數按相反順序存放
可參考:
兩個順序線性表的合併,關於數組指針的操作。
http://blog.csdn.net/jiezou007/article/details/7906606
參考:字符串的反轉,理解反轉的兩種方式
http://blog.csdn.net/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;
}
}