C语言结构体的定义
发布网友
发布时间:2022-03-30 06:50
我来回答
共8个回答
热心网友
时间:2022-03-30 08:19
这段程序意思是定义一个LNode类的结构体,后面的LNode是结构体变量,LinkList是结构体指针。里面的struct LNode *next是定义指向LNode结构体的指针域,说明LNode结构体里面结点一共两个域一个数据域,一个指针域。}后面的LNode可以去掉,可以在其他地方声明结构体变量。
热心网友
时间:2022-03-30 09:37
首先需要弄清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;
热心网友
时间:2022-03-30 11:12
第二个struct
student是定义了一个student结构体,这个明白吧。
第一个是用typedef把struct
student这个结构体类型名字重新定义为student,也就是说struct
student和student表示同一个事物,都是一个类型的标识符,比如
typedef
int
zhengshu;
就是你把整型int重命名为zhengshu,下面定义:int
i;
和
zhengshu
i;
两句就是等价的了
打字不易,如满意,望采纳。
热心网友
时间:2022-03-30 13:03
定义一个结构体
结构体里面存着 一个字符数据,char data;
还有只想下个结构体节点的指针,struct LNode *next;
LNode,*LinkList是给这个结构体数据类型取名字。相当于 int char
热心网友
时间:2022-03-30 15:11
struct LNode *next;是什么意思啊? //定义该节点的指针域,用于保存下个节点的地址
如果去掉“}”后面的LNode可以吗 //可以不过你用这个类型的话就得连续写struct LNode
热心网友
时间:2022-03-30 17:36
这有链表的样子,这个next是记录下一个LNode在那个,就好比一个节点,至于去掉}这个我不知你的原因,你可以告诉我为什么想去掉吗?回答得知道你怎么想的追问我理解的是typedef为这个结构体LNode重新命名为LNode,这样做似乎没有必要啊,理论上去掉也可以吧,可是去掉}后的LNode和typedef程序会报错,那也就说明我理解的有错误,那我该怎么正确理解这段程序?
还有 末尾的*LinkList是什么意思?是定义了一个具有LNode结构的指针变量指向LNode吗?
追答第一LNode 代表的是struct LNode,就是以后声明LNode这样的结构体,用LNode就可以了,而*LinkList就是一个定义LNode的指针关键字。就是说LNode和*LinkList是一个关键字,你说重新命名没必要删掉的应该是typedef呀, 我看一下你下面的追问,还给你说简单点吧,LNode现在是C的关键字了他和int,char,long是一个用途了,*LinkList就是声明struct LNode指针的声明,就好比 int *,char *的
热心网友
时间:2022-03-30 20:17
定义一个节点结构体,包含一个 char 数据,和下一个节点 的地址。
struct LNode *next; 是定义下一个 节点的指针变量。
去掉} ,会报错的,语法不完整。追问定义*LinkList是什么意思啊?
如果程序接下来的语句是这样的:
LinkList CreatList_L(int n) //为什么要用LinkList声明创建链表啊?
{
LinkList L; // LinkList不是指针吗?在这里为什么可以定义链表L呢?
……
}
return L;
}
热心网友
时间:2022-03-30 23:15
可以啊。那就只定义了一个指针别名LinkList啊!