Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个这样的 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- 对指针的引用- ...
node& *Lista
node
node* &Lista
因此,在 C 中,您将传递一个指向指针的指针,例如声明您的参数node**pLista并在函数内部的任何地方使用,*pLista而不是ListaC++ 的引用。
node**pLista
*pLista
Lista