This question already has answers here:
Closed 2 years ago.
Placement of the asterisk in pointer declarations
(14个答案)
我有一个节点:
struct node
    {
        int key;
        struct node *left, *right;
    };

有什么区别
node  *node1


node*  node1

?

最佳答案

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

 typedef struct node node;

到位了,没什么区别。这两个语句都声明了指向typedef的指针类型的变量node1。(注意:您仍然需要终止node)。
这是一个选择的问题,但是有些人(包括我)更喜欢将指针符号附加到变量上,以避免误解,例如
 node *p, q;

其中,;是指针类型,但p不是。
写得像
 node* p, q;

可能会产生一种错觉,即qp都是指针类型,而实际上它们不是指针类型。

关于c - node * node1与node * node1有什么区别? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44055033/

10-09 07:34