<分区>
我有一个像这样的 C++ 程序:
typedef struct _nodo
{
...
} node;
void cuenta(node& *Lista, char c);
当我编译时没有显示任何错误。 现在,当我想将此代码用于 C 程序时,编译器显示错误:
error: expected ')'
void cuenta(node* &Lista, char c);
C++ 和 C 中的 &
和 *
有什么区别?
<分区>
我有一个像这样的 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,所以它在 C 中是无效的语法。顺便说一句,你可能是说 node* &Lista
-a reference to a pointer- ...
所以在 C 中,您将传递一个指向指针的指针,例如声明您的参数 node**pLista
并在您的函数内的所有位置使用 *pLista
而不是 C++ 的 Lista
引用。
关于C++ 到 C 的区别 & *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19615377/