节点* node1与node * node1的区别是什么?

时间:2017-05-18 18:08:48

标签: c pointers syntax

我有1个节点:

struct node
    {
        int key;
        struct node *left, *right;
    };

之间有什么区别
node  *node1

VS

node*  node1

1 个答案:

答案 0 :(得分:1)

如果没有typedef,这两个声明都是非法的。

使用typedef之类的

 typedef struct node node;

到位,没有区别。这两个语句都声明了一个指向node1的类型指针的变量node。 (注意:您仍然需要终止;,但)。

这是一个选择问题,但有些人(包括我)更喜欢将指针符号附加到变量上,以避免误解,如果有多个变量声明,例如

 node *p, q;

其中,p是指针类型,但q不是。

写一下

 node* p, q;

可能会创建pq两者都是指针类型的错觉,实际上,它们