为什么我的引用会更新它引用的元素数组?

Why does my reference update the element array it is referencing?

谁能通俗地向我解释为什么我的引用正在更新它所引用的元素数组?我认为引用的全部意义在于仅引用一个值。

#include <iostream>

int main() {

    int arr[4] = { 0,0,0,0 };
    arr[0] = 1;

    int& reference = arr[0];
    reference = 2;

    std::cout << arr[0];

}

通俗地说,按要求:

引用和指针基本上是一回事,主要区别在于引用不能是 null 并且在使用它们时简化了语法。

另外,数组变量也是指针。 arr是指向数组开头的指针,arr[1]是指向第二个元素的指针,和arr + 1.

是一回事

当您执行 int& reference = arr[0] 时,您将 reference 指定为指向数组的第一个元素。当您随后调用 reference = 2 时,其含义与调用 arr[0]=2

相同
int * pointer = arr + 0;
*pointer = 2;