#include<stdio.h>
#include<iostream>
void reverse(int* a, int length) {
int* p, temp, * i, * j, m;
m = (length - 1) / 2;//取得中间的下标
i = a;//i指向数组的首元素
j = a + length - 1;//j指向数组的尾元素
p = a + m;//p指向数组中间的元素
for(; i < p; i++,j--)
{//依次交换首尾元素的值
temp = *i;
*i = *j;
*j = temp;
}
}
void printArr(int arr[],int length) {
for (int i = 0; i < length; i++)
{
printf("%d ", arr[i]);
}
putchar('\n');
}
int main() {
int a[5] = { 1,2,3,4,5 };
int length = sizeof(a) / sizeof(a[0]);
printf("反转之前的数组:\n");
printArr(a, length);
reverse(a, length);
printf("反转之后的数组:\n");
printArr(a, length);
system("pause");
return 0;
}
输出: