关于数据结构(c语言)中结构体声明的typedef struct LNode, *LinkList的思考

在数据结构的链表,表示中 typedef struct Node * PtrToNode 和 typerdef struct List的表示说明

typedef struct Node * PtrToNode;
struct Node{
elementype data;
ptrToNode Next;
};
typeded ptrToNode List;
List L;

这段代码中 用typeder这个方式 来重命名 struct Node* 这个结构体类型,所以 ptrToNode 这个变量名就可以直接使用来代表 struct Node* 这个结构体类型,因此就有后面的ptrToNode Next;就等价于struct Node* Next;因此后面的List,就代表struct Node* List

但是有没有想过,structu Node * 这个类型我们好像没见过,就算是我们自己定义的往往也是structu Node类型。所以,想一下 * 这个符号是什么意思

在以前定义指针的时候,是不是经常写 int *p;
在这个语句中,这个 * 号的代表的地址变量的标志,不参与运算。地址可以理解为指针,这句话应该没毛病吧。所以,以前学习的时候,都认为 * 号是指针的标志。所以,这里的int * 代表的是整型变量的地址。后面那个p只是个变量的名字而已,只是我们习惯 *p 这种写法,其实应该 int * p。这里纠结这个意义不大。
所以 上面的代码还可以写成

typedef struct Node{
elementype data;
ptrToNode Next;
} *PtrToNode;//这里不是结构体变量名,只是个别名而已。
typeded ptrToNode List;
List L

因此 我们看回这句申请空间的语句:

struct student* p=(struct student* )malloc (sizeof(struct student))

这段代码中,struct student * 就表示这个地址是student 结构体的地址

这里只是我的一些个人理解,如果有错误,请指出谢谢!

  • 27
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值