#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; }
輸出: