为什么我的引用会更新它引用的元素数组?
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;
谁能通俗地向我解释为什么我的引用正在更新它所引用的元素数组?我认为引用的全部意义在于仅引用一个值。
#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;