C++ to C 差异 &*

C++ to C difference & *

本文关键字:差异 to C++      更新时间:2023-10-16

我有一个这样的C++程序:

typedef struct _nodo
{
    ...
} node;    
void cuenta(node& *Lista, char c);

当我编译时没有显示任何错误。现在,当我想将此代码用于 C 程序时,编译器显示错误:

error: expected ')'
void cuenta(node* &Lista, char c);

C++ 和 C 中的 &* 有什么区别?

node& *Lista将是一个指向C++中某些node的引用的指针(但这在C++中是不可能的),但引用类型在 C 中不存在,所以它在 C 中是无效node* &Lista的语法。

因此,在 C 中,您将传递指向指针的指针,例如,声明您的参数node**pLista并在函数*pLista内的任何地方使用,而不是 C++ 的Lista引用。