通过引用传递参数有哪些不同的方法,它们有何不同?

What are the different ways to pass a parameter by reference and how do they differ?

提问人:ericssonl07 提问时间:3/24/2023 更新时间:3/24/2023 访问量:62

问:

谁能解释一下传递参数的所有不同类型的方法?具体来说,涉及 & 符号 ('&') 和“const”关键字。 我见过很多种类,但我真的不明白它们的作用,以及何时应该使用它们。

仅举几例: 类型 & 常量 键入 const & const 类型 &

另外,我不确定使用什么语法。例如,对于名为 的参数,它是写成 还是?对于名为 的参数,是写还是?int & constaint & a constint & const aint const &aint const & aint const a &

这是我的理解。我了解如何创建引用。我知道引用就像地址的别名,并且不会复制参数。我还知道 & 符号有时可以表示地址。

如果有人能澄清这一点,我将不胜感激。

C++ 引用 参数传递 const-reference

评论

6赞 NathanOliver 3/24/2023
听起来你可以用一本好的C++书
4赞 Some programmer dude 3/24/2023
实际上只有一种方法可以通过引用传递任何参数。那就是在声明中添加 & 号。真的就是这样。和 它的位置只是增加了被引用的对象可能不会被修改。限定符添加了一些其他语义(例如能够将引用绑定到右值),但这并不能真正改变“按引用传递对象”语义。&constconst
2赞 Some programmer dude 3/24/2023
至于放置,两者都是一样的。第一个()表示“对对象的引用,其中对象是常量的”;第二个()表示“对类型的常量对象的引用”。两者是等价的。类似或根本不有效的东西。const T&T const&const T&TT const&TT& constT& x const
0赞 drescherjm 3/24/2023
我还知道 & 符号有时可以表示地址。在这种情况下,它不是参考,而是运营商的地址。也许这澄清了你对此的一些担忧:https://stackoverflow.com/questions/35594378/address-of-operator-vs-reference-operator
0赞 ericssonl07 3/24/2023
@Someprogrammerdude谢谢!您是否知道一个好的来源来了解有关 l/rvalues、通用引用等的更多信息?

答: 暂无答案