函数原型在其中带有&符号意味着什么?

时间:2012-02-28 20:06:20

标签: c++ function prototype ampersand

  

可能重复:
  What does the '&' operator do in C++?

今天在我的CS课上,老师向我们展示了函数和模板的一些例子,函数的一些原型在参数列表中有&ampersands,如下所示:

void exchange( T & x, T & y ) ; // prototype
这是什么意思?我应该用它做什么?

2 个答案:

答案 0 :(得分:4)

& 用于参考。简而言之,就像指针一样,不能为NULL 。维基百科有关于此主题here的内容。

在函数/方法调用中使用它们时,便宜,因为在函数调用中不需要复制该对象。您仍然使用与复制对象相同的语法。使用指针你需要处理特殊情况,指针是 NULL

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

答案 1 :(得分:0)

&表示'引用' - x是对T的引用,而非副本。