C语言结构体的定义

typedef struct LNode
{
char data;
struct LNode *next;
} LNode,*LinkList;
这段程序该怎么理解?struct LNode *next;是什么意思啊?如果去掉“}”后面的LNode可以吗?

这段程序意思是定义一个LNode类的结构体,后面的LNode是结构体变量,LinkList是结构体指针。里面的struct LNode *next是定义指向LNode结构体的指针域,说明LNode结构体里面结点一共两个域一个数据域,一个指针域。}后面的LNode可以去掉,可以在其他地方声明结构体变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-17
首先需要弄清typedef的作用:
int a; //首先定义一个int型的变量a
typedef a my_int; //typedef 的作用是声明一种新的数据类型,该数据类型和变量a所属的类型一样。
my_int b; //然后就可以使用typedef声明的新的数据类型my_int来定义新的变量b,此时b就是my_int类型也就是int类型
struct LNode
{
char data;
struct LNode *next;
}
上面这个结构体定义应该很熟悉,就是定义了一个LNode的结构体变量,可以类似于上面的变量a。这里我们把struct LNode结构体变量替换为变量a,所以你的结构体变为:
typedef a LNode,*LinkList
上面的代码等价于下面两行:
typedef a LNode; //定义LNode是一种struct LNode的数据类型,比如:LNode my_struct;
typedef a *LinkList; //定义了一种指向LNode数据类型的指针类型LinkList,比如:LinkList my_point;
第2个回答  2020-02-28
第二个struct
student是定义了一个student结构体,这个明白吧。
第一个是用typedef把struct
student这个结构体类型名字重新定义为student,也就是说struct
student和student表示同一个事物,都是一个类型的标识符,比如
typedef
int
zhengshu;
就是你把整型int重命名为zhengshu,下面定义:int
i;

zhengshu
i;
两句就是等价的了
打字不易,如满意,望采纳。
第3个回答  推荐于2017-12-27
定义一个结构体
结构体里面存着 一个字符数据,char data;
还有只想下个结构体节点的指针,struct LNode *next;
LNode,*LinkList是给这个结构体数据类型取名字。相当于 int char本回答被网友采纳
第4个回答  2012-10-07
struct LNode *next;是什么意思啊? //定义该节点的指针域,用于保存下个节点的地址

如果去掉“}”后面的LNode可以吗 //可以不过你用这个类型的话就得连续写struct LNode本回答被网友采纳
相似回答