方法一:
#include <stdio.h>
void inverted(int *p,int n){
int *a,*b,t,m=(n-1)/2;
a=p+n-1;//a存放末尾地址
b=p+m;//b存放中间位置
for (;p<b; p++,a--)
{
t=*p;
*p=*a;
*a=t;
//*p是首位置,然后与末尾进行交换。
}
}
int main(int argc, char const *argv[])
{
int sz[]={0,1,2,3,4,5,6,7,8,9},i;
for(i=0;i<10;i++){
printf("%d,",sz[i]);
}
printf("\n");
inverted(sz,10);
for (i = 0; i < 10; ++i)
{
printf("%d,", sz[i]);
}
return 0;
}
方法二:
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
int s[]={1,2,3,8,4,5,6,9},i,t,l;
int *p=s;
l=sizeof(s)/4;
//计算数组长度字符用strlen,整型就sizeof(s)/4;
for (i = 0; i <l/2; i++)
{
t=*(p+i);
*(p+i)=*(p+l-1-i);
*(p+l-1-i)=t;
}
for (i = 0; i < l; i++)
{
printf("%d\n",*(p+i));
}
return 0;
}