1. 定义两个指针变量
int a[5] = {1, 2, 3, 4, 5};
int *p1,*p2;
//定义两个指针变量,p1指向a[0],p2指向a[4]
p1 = &a[0];
p2 = &a[4];
2. 循环交换
while(p1 < p2) //循环条件为:p1中存放的地址小于p2中存放的地址
{
//交换
int t = *p1;
*p1 = *p2;
*p2 = t;
//移动指针,p1向后移动,p2向前移动,当p1不再小于p2,则循环结束,即交换完毕。
p1++;
p2--;
}
3. 遍历输出数组
int i;
for(i = 0;i < 5;i++)
{
printf("%d ", a[i]);
}
printf("\n");
4. 整体代码
#include <stdio.h>
int main()
{
int a[5] = {1,2,3,4,5};
int *p1,*p2;
p1 = &a[0];
p2 = &a[4];
while(p1 < p2)
{
int t = *p1;
*p1 = *p2;
*p2 = t;
p1++;
p2--;
}
int i;
for(i = 0;i < 5;i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}