最近一位c ++专家告诉我:
void f(int &*r);
是参考示例的有效传递,虽然我认为这是某种指向非法的引用的指针。根据我的知识,通过引用传递的正确形式是以下形式之一:
void f1(int *&r);
void f2(int &r);
你能解释一下第一个例子(函数f)的情况吗?
答案 0 :(得分:8)
在所有版本的C ++中,第一个(指向引用的指针)是非法。其余两个是合法。
底线:忽略你的教练 - 他/她不懂C ++,至少在这种情况下。
答案 1 :(得分:3)
不允许,
来自C ++标准8.3.2 / 5:
不应引用引用,也不引用引用数组, 并且没有指向参考的指针。
并且它也没有编译,g ++输出:
错误:无法声明指向'int&'
的指针