用C++编写一个函数,实现数组中元素逆序,要求用到指针
时间: 2023-03-15 15:33:30 浏览: 142
可以这样实现: 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--;
}
}
相关问题
用c++编写函数 reverse,将数组中的元素逆序,函数原型如下。 void reverse( int array[], int size ); 其中 array 为指向数组的指针,size 表示数组的大小。
reverse 函数的实现如下:
void reverse(int array[], int size) {
int temp;
for (int i = ; i < size / 2; i++) {
temp = array[i];
array[i] = array[size - i - 1];
array[size - i - 1] = temp;
}
}
该函数通过循环将数组中的元素逆序,具体实现是将数组的第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换,以此类推,直到数组中间位置。
使用指针作为函数的参数,编写程序,设计一个函数实现对数组数据的逆序
在C++中,我们可以使用指针作为函数参数来实现数组逆序的功能。这是因为指针可以直接操作内存地址,所以可以方便地修改原数组的内容。下面是一个简单的示例:
```cpp
#include <iostream>
// 函数模板,接受指向数组首元素的指针,以及数组长度
template<typename T>
void reverseArray(T* arr, size_t len) {
// 如果数组为空或者只包含一个元素,无需反转
if (len <= 1) return;
// 双指针法,从两端开始交换元素
T* start = arr; // 指向数组开头
T* end = arr + len - 1; // 指向数组结尾
while (start < end) {
std::swap(*start, *end); // 交换两个指针所指向的元素
start++; // 向右移动起始指针
end--; // 向左移动结束指针
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
const size_t len = sizeof(arr) / sizeof(arr[0]);
std::cout << "Before reversing:\n";
for (size_t i = 0; i < len; i++) {
std::cout << arr[i] << " ";
}
reverseArray(arr, len);
std::cout << "\nAfter reversing:\n";
for (size_t i = 0; i < len; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
```
在这个例子中,`reverseArray`函数通过改变传入指针的位置,实现了对数组元素的逆序。运行此程序,你会看到数组在调用该函数之后内容反向了。
阅读全文