C++程序 将一个数组的内容以相反的顺序复制到另一个数组中
问题描述
我们需要将一个数组的内容以相反的顺序复制到另一个数组中。例如,有如下两个数组:
int arr1[5] = { 1, 2, 3, 4, 5 };
int arr2[5] = { 0, 0, 0, 0, 0 };
最终我们需要的结果是将arr1
中的内容以相反的顺序赋值给arr2
:
// arr2现在变成{5, 4, 3, 2, 1}
解决方案
我们可以使用如下的方法将一个数组倒序复制到另一个数组中:
- 首先定义两个数组,同时将它们的大小设为相同。
const int SIZE = 5; // 数组大小
int arr1[SIZE] = { 1, 2, 3, 4, 5 };
int arr2[SIZE] = { 0, 0, 0, 0, 0 };
- 接着,我们需要定义一个指向
arr1
数组的指针,并将它指向数组的最后一个元素。
int* p = arr1 + SIZE - 1;
- 使用一个循环,依次将
arr1
中的元素赋值给arr2
,并将指针向前移动。
for (int i = 0; i < SIZE; i++)
{
arr2[i] = *p;
p--;
}
- 最后,我们可以打印出
arr2
数组的内容,以验证我们的程序是否正确。
for (int i = 0; i < SIZE; i++)
{
cout << arr2[i] << " ";
}
完整代码如下:
#include <iostream>
using namespace std;
int main()
{
const int SIZE = 5; // 数组大小
int arr1[SIZE] = { 1, 2, 3, 4, 5 };
int arr2[SIZE] = { 0, 0, 0, 0, 0 };
int* p = arr1 + SIZE - 1;
for (int i = 0; i < SIZE; i++)
{
arr2[i] = *p;
p--;
}
for (int i = 0; i < SIZE; i++)
{
cout << arr2[i] << " ";
}
return 0;
}
结论
通过指针的方法,我们可以很方便地将一个数组的内容以相反的顺序复制到另一个数组中。这种方法简单明了,易于理解,值得我们在以后的编程过程中使用。