用C++编写一个函数,实现数组中元素逆序,要求用到指针
时间: 2023-03-15 22:33:30 浏览: 88
可以这样实现: void reverseArray(int *a, int len) {
int *left = a;
int *right = a + len - 1;
while (left < right) {
int temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
相关问题
设计一个函数模板reverse,用于对一个一维数组元素实现逆序。
好的,为您提供一个函数模板reverse的实现代码:
```c++
template <typename T>
void reverse(T arr[], int len) {
int left = 0;
int right = len - 1;
while (left < right) {
T temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
```
该函数模板接受一个一维数组和数组长度作为参数,然后使用双指针算法实现数组元素的逆序。您可以根据需要将上述代码复制到您的程序中使用。
使用指针实现数组元素逆序存放
可以通过以下步骤使用指针实现数组元素逆序存放:
1. 定义一个指向数组首元素的指针和一个指向数组尾元素的指针。
2. 使用循环将首指针指向的元素与尾指针指向的元素交换,并将首指针向后移动一个位置,尾指针向前移动一个位置,循环直到首指针和尾指针相遇。
下面是一个示例代码:
```c++
void reverseArray(int* arr, int size) {
int* start = arr;
int* end = arr + size - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
在这个函数中,我们首先定义了两个指针 `start` 和 `end`,一个指向数组首元素,一个指向数组尾元素。然后,我们使用 `while` 循环,每次将 `start` 指向的元素与 `end` 指向的元素交换,并将 `start` 向后移动一个位置,`end` 向前移动一个位置,直到两个指针相遇,即数组元素逆序存放完成。