C++利用指针实现一个一维数组的转置
时间: 2023-07-20 22:12:18 浏览: 93
C++编写的数组转置程序
假设原数组为`a`,转置后的数组为`b`,数组长度为`n`,则可以利用指针实现一维数组的转置如下:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入数组长度n: ";
cin >> n;
int* a = new int[n]; // 动态分配数组空间
int* b = new int[n]; // 动态分配数组空间
cout << "请输入" << n << "个整数: ";
for (int i = 0; i < n; i++) {
cin >> *(a + i); // 使用指针操作数组元素
}
cout << "原数组a为: ";
for (int i = 0; i < n; i++) {
cout << *(a + i) << " ";
}
cout << endl;
// 转置数组
for (int i = 0; i < n; i++) {
*(b + i) = *(a + n - i - 1);
}
cout << "转置后数组b为: ";
for (int i = 0; i < n; i++) {
cout << *(b + i) << " ";
}
cout << endl;
delete[] a; // 释放数组空间
delete[] b; // 释放数组空间
return 0;
}
```
这里使用指针操作数组元素,`*(a + i)`等价于`a[i]`,表示数组`a`的第`i`个元素。`*(b + i) = *(a + n - i - 1)`表示将数组`a`的最后一个元素赋值给数组`b`的第一个元素,以此类推,实现数组转置。在使用完动态分配的数组空间后,需要使用`delete[]`释放空间,避免内存泄漏。
阅读全文