当我在wiki上查找它时,它说这是一个数据的物理地址。但在我的教科书中使用的这个词的上下文中,这个意思没有意义:
“表 6.1 显示了地址操作符 & 对引用数据类型的影响。”
这没有意义,因为 WITH the & 的表达式将是物理地址,因此是引用。
此外,他们同时称 valp 和许多“参考”。如果他们指的是地址,那么只有 &many 是一个参考。
在这种情况下引用的含义是什么?
当我在wiki上查找它时,它说这是一个数据的物理地址。但在我的教科书中使用的这个词的上下文中,这个意思没有意义:
“表 6.1 显示了地址操作符 & 对引用数据类型的影响。”
这没有意义,因为 WITH the & 的表达式将是物理地址,因此是引用。
此外,他们同时称 valp 和许多“参考”。如果他们指的是地址,那么只有 &many 是一个参考。
在这种情况下引用的含义是什么?
从广义上讲,将值传递给子程序有两种主要方式:按值传递和按引用传递。不同之处在于,在按值传递中,子例程获取数据的副本,因此它可以在不更改原始数据的情况下对其进行变异,而在通过引用传递时,对子例程中数据的更改也对调用者可见。
您感到困惑的原因是在 C++ 中有两种通过引用传递事物的方法:指针和引用。实际上,C++ 引用就像一个指针,只是你不需要一直使用&
and *
(你也不能对引用进行指针运算)
int a = 1;
int &b = a;//b is an alias for a.
a = 2;// b will also be 2
这是一个C++特性(因为我看到你第一次用 标记问题c
),在上面的简单示例中,b
是 的引用a
,因此它的值将被相应地修改。
您的问题涉及的误解不止一个;所以,让你朝着正确的方向开始:
&
C++ 中的运算符表示在某些上下文中的引用和在其他上下文中的地址。这两个含义只是模糊相关,您的问题似乎将两者混为一谈。您可能需要再阅读几个小时才能在您的脑海中解开这两种含义,然后才能在这里提出一个有意义的问题。
祝你好运。