使用指针交换数组中元素的值

我最近学习了指针,并开始尝试使用它进行简单的操作和简单的函数,并且我做了一个交换函数,该函数使用指针交换数组中元素的第一个值和最后一个值。 现在我的问题是,当我有两个指针时,一个指针基本上指向另一个变量的内存位置正确吗?因此,我将两个指针分配给数组的最后一个值和第一个值,并打印了这些值,并且它们已交换。但是当我打印数组时,第一个值和最后一个值也已交换。这是我不了解的,我只打印了数组,并且在打印过程中没有包含指针。

这是我的代码,如果有人可以解释为什么数组也交换了它的值,我将不胜感激。

#include <iostream>

#include <ctime>

using namespace std;


void swap(int* swapptr, int arr[], int* swapptr2, int size);

int main() {
int size;
int  arr[] = { 1,2,3,4,5,6 };
int* swap1, * swap2;
size = 6;
swap1 = arr;
swap2 = &arr[size-1];
cout << "The value of the first element is " << *swap1 << " and second element is " << *swap2 << " \n 
\n";

swap(swap1, arr, swap2, size);

cout << "After swap the value of first is " << *swap1 << " and second is " << *swap2 << "\n \n ";
for (int i = 0; i < size; ++i) {
  cout << arr[i] << " ";
}

}




void swap(int* swapptr, int arr[], int*swapptr2, int size) {
int temp = arr[0];
swapptr = arr;
*swapptr2 = arr[size-1];
*swapptr = *swapptr2;
*swapptr2 = temp;


}