c - node *node1 与 node* node1 有什么区别?

标签 c pointers syntax

<分区>

我有 1 个节点:

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

有什么区别

node  *node1

对比

node*  node1

?

最佳答案

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

typedef

 typedef struct node node;

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

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

 node *p, q;

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

这样写

 node* p, q;

可能造成pq 都是指针类型的错觉,而实际上,它们不是.

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

相关文章:

将十进制数转换为其二进制表示形式的 char 数组 :

c++ - 函数可以位于赋值运算符的左侧吗?

c++ - 如何创建一个 makefile 而不必在项目中包含每个源文件?

c++ - 无符号算术和整数溢出

c++ - 错误:表达式必须具有指向类的指针

c++ - 返回指针的方法,指向在另一个 header 中声明的数组对象,

自减/自增运算符的Java表达式解释规则

c# - 为什么赋值语句会返回一个值?

c - 如何在成对结构中可移植地保存两个内存字?

c - 关于C语言在GCC、Linux环境下的指针