那么第一张图片上是啥意思呢,在开头的时候即声明了一个结构体叫做Lnode,为啥末尾又把他改成了同样的名字Lnode?,,还有如果struct 声明了一个结构体Lnode,那么结构体末尾不应该是创建两个结构体类型的变量吗?,我感觉很矛盾,能解释一下吗?
1、
LNode和*LinkList其实都是结构体struct LNode的别名,只不过类型不同。
LNode是一个普通的结构体名,相当于将结构体类型struct LNode重命名为LNode;
*LinkList是一个指针类型,相当于将struct LNode * 重命名为LinkList。
2、
C语言结构体中struct和typedef struct区别为:声明不同、访问不同、重新定义不同。
一、声明不同
1、struct:struct可以直接使用结构体名字声明结构体。
2、typedef struct:typedef struct的为。修饰结构体,结构体有了别名,通过结构体别名声明结构体。
二、访问不同
1、struct:struct定义的结构体变量,可直接访问结构体成员。
2、typedef struct:typedef struct定义的结构体变量,不可直接访问结构体成员,必须显式的通过结构体变量来访问成员。
3、
Lnode 是结构体变量
结构体最后有几个结构体变量都可以,最后的变量意思是在定义结构体的同时,声明了几个变量。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!