代码之家  ›  专栏  ›  技术社区  ›  SerchRac

C++到C的差异&*[重复]

  •  0
  • SerchRac  · 技术社区  · 12 年前

    我有一个C++程序,如下所示:

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

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

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

    两者有什么区别 & * 在C++和C?

    1 回复  |  直到 12 年前
        1
  •  4
  •   Basile Starynkevitch    12 年前

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

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