0

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

typedef struct _nodo
{
    ...
} node;    

void cuenta(node& *Lista, char c);

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

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

&C ++和*C之间的区别是什么?

4

1 回答 1

4

node& *Lista将是指向 C++ 中某些引用的指针node(但这在 C++ 中是不可能的),但引用类型在 C 中不存在,因此它在 C 中是无效的语法。顺便说一句,您可能的意思是node* &Lista- 对指针的引用- ...

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

于 2013-10-27T06:45:39.067 回答