函数原型中带有 & 符号是什么意思?

DCI*_*Dev 3 c++ prototype function ampersand

可能重复:
“&”运算符在 C++ 中起什么作用?

在今天的计算机科学课上,老师向我们展示了一些函数和模板的示例,其中一些函数原型在参数列表中带有“&”符号,如下所示:

void exchange( T & x, T & y ) ; // prototype
Run Code Online (Sandbox Code Playgroud)

这意味着什么?我应该用它做什么?

Jör*_*yer 5

&供参考简而言之,这就像一个指针,不能是 NULL。维基百科有关于这个主题的内容

当在函数/方法调用中使用引用时,引用的成本很低,因为不需要在函数调用中复制对象。您仍然具有与复制对象相同的语法。对于指针,您需要处理特殊情况,即指针为NULL

这是使用它们的常见原因。如果我猜对了,交换意味着交换两个对象 x 和 y,则函数调用的成本与处理对象的成本直接相关,因此保存一些副本可能是相关的优化。