C++ 到 C 的区别 & *

标签 c++ c pointers ampersand

<分区>

我有一个像这样的 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/

相关文章:

c++ - LookupAccountName 在 Vista 上失败并显示 ERROR_NONE_MAPPED

c - 这个循环如何结束?

c - 如何遍历 char ** 指针?

c# - 有哪些适合 C#/Java 开发人员学习 native C/C++ 的好资源(最好是免费的)?

c++ - 包含二维数组的类的运算符重载

c++ - 如何使用 is_invocable() 来创建用于重载 << 以打印对象的模板?

c++ - 空指针指针(void **)

c - Gtk 找不到 "<config.h>"

c - 如果我们给 a=123 变量 a 的第一个字节赋值 123 但如果我们给 a=1234 那么其他值来了

c - 删除链表尾部 : Why a specific approach won't work