可以利用两个指针来实现数组的逆置。一个指向数组的起始位置,一个指向数组的末尾位置,然后交换两个指针指向的元素,然后分别向数组中心移动指针,再进行交换,重复这个过程直到两个指针相遇。
下面是一个示例代码:
#includevoid reverseArray(int arr[], int size) { int start = 0; // 起始位置指针 int end = size - 1; // 结束位置指针 while (start < end) { // 交换两个指针指向的元素 int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // 向中心移动指针 start++; end--; } } int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); printf("原始数组:"); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } reverseArray(arr, size); printf("\n逆置后数组:"); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } return 0; }
输出结果为:
原始数组:1 2 3 4 5 逆置后数组:5 4 3 2 1