功能通过引用传递

时间:2014-01-20 10:58:08

标签: c++ function pointers reference pass-by-reference

最近一位c ++专家告诉我:

void f(int &*r);

是参考示例的有效传递,虽然我认为这是某种指向非法的引用的指针。根据我的知识,通过引用传递的正确形式是以下形式之一:

void f1(int *&r);
void f2(int &r);

你能解释一下第一个例子(函数f)的情况吗?

2 个答案:

答案 0 :(得分:8)

在所有版本的C ++中,第一个(指向引用的指针)非法。其余两个是合法

底线:忽略你的教练 - 他/她不懂C ++,至少在这种情况下。

答案 1 :(得分:3)

不允许,

来自C ++标准8.3.2 / 5:

  

不应引用引用,也不引用引用数组,   并且没有指向参考的指针

并且它也没有编译,g ++输出:

  

错误:无法声明指向'int&'

的指针
相关问题