&和和*在函数参数中

时间:2012-11-11 02:54:54

标签: c++

  

可能重复:
  difference between a pointer and reference parameter?

使用C ++我想知道使用C ++的不同之处是什么?和*参数?

例如:

void swap(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

显然会交换整数a和b。但是,以下功能不会完全相同吗?

void swap(int *a, int *b)
{
    int temp = *b;
    *b = *a;
    *a = temp;
}

我只是想知道何时使用每一个,以及每一个的优点。

1 个答案:

答案 0 :(得分:3)

指针和引用之间的区别在于指针可以指向“无”,而引用则不能指向“无”。你的第二个样本应该在取消引用它们之前检查指针;没有必要使用参考文献。