如何实现数组的元素倒置

#include
using namespace std;

int main() {

int a = 0;
int arr[5] = { 1,2,3,4,5 };
int arr2[5];

for (int i = 4; i >0; i++)
{
    for (int j=0; j < 5; j++)
    {    
        arr2[j] = arr[i];
        cout << arr2[j] << endl;
    }
}

}
这个题目我想用数组给数组赋值的方法解决,但是行不通
这是我写的代码,结果报错为:
0x00007FF6E66B195A 处(位于 案例二:元素逆置.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000063B0BE0000 时发生访问冲突。
请问怎么解决?

首尾进行交换,不需要双循环

#include <iostream>
using namespace std;
int main()
{
    int a[5] = {1,2,3,4,5};
    int i=0,j=4,temp;
    while(i++<j--)
    {
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
    for(i=0;i<5;i++)
        cout<<a[i]<<" ";
    return 0;
}

for (int i = 4; i >0; i++) 调试就知道了

for (int i = 4; i >0; i++) 这里要用i--,不然越界了,还会死循环