原创 关于结构体的认识

2016-4-2 18:47 1123 17 17 分类: 软件与OS

今天讨论一下有关结构体的问题。

开门见山,直接上代码

typedef struct node

{

   int data;

   struct node * next;

}node,*linklist;

这是实现一个单链表结构体的节点的定义。

第一个小问题,结构体出现了3个node,第一个node,指明结构体的名称,英文教材的tag就是这个意思,它出现在这个位置就有一个作用,为了定义结构体内的*next指针,这也正是第二个node出现的原因,一般来说定义一个新结构体的格式有这种方式:

struct 结构体名 变量名;

第二个node,也就是这个意思;第三个node;和typedef有关系,意思就是把这个结构体变成一个名为node的新类型。和前两个node没有一点关系,只是名字相同而已。当然在这里,*linklist与node等价,也是一种类型名。可以直接使用它来创建变量。

第二个小问题,这位定义链表节点的哥们儿为什么搞两个类型名,*linklist与node。刚开始我想一个不就完了,用有点画蛇添足了。刚开始一直不解,后来,我也看到只定义一个的类型名。所以我的理解就是,定义两个,应该有两个好处:1、方便,node,*linklist;这两个一个带*符号,一个是普通形式.2、便于理解;名称也隐含一定信息,可读性可能好点。

 

结构体里面知识很多,多练多想才是硬道理。

 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
17
关闭 站长推荐上一条 /3 下一条