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

我有1个节点:

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

有什么区别

 node *node1 

VS

 node* node1 

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

有一个类似于typedef

  typedef struct node node; 

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

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

  node *p, q; 

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

写得像

  node* p, q; 

可能会产生pq都是指针类型的错觉,实际上它们不是