我有1个节点:
struct node
{
int key;
struct node *left, *right;
};
之间有什么区别
node *node1
VS
node* node1
答案 0 :(得分:1)
如果没有typedef
,这两个声明都是非法的。
使用typedef
之类的
typedef struct node node;
到位,没有区别。这两个语句都声明了一个指向node1
的类型指针的变量node
。 (注意:您仍然需要终止;
,但)。
这是一个选择问题,但有些人(包括我)更喜欢将指针符号附加到变量上,以避免误解,如果有多个变量声明,例如
node *p, q;
其中,p
是指针类型,但q
不是。
写一下
node* p, q;
可能会创建p
和q
两者都是指针类型的错觉,实际上,它们不。