节点* 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;
可能会产生p
和q
都是指针类型的错觉,实际上它们不是 。