为了账号安全,请及时绑定邮箱和手机立即绑定

c语言链表里面有一些概念不清楚,求大神给我讲讲

/ 猿问

c语言链表里面有一些概念不清楚,求大神给我讲讲

C
依木兰 2019-05-07 15:05:05

有点不明白链表里面的

 struct node *head=(struct node*)malloc(sizeof(struct node)); 

struct node *ptail; 

head=ptail;

 这个是什么意思,让ptail指向head节点吗?

 struct node *head=(struct node*)malloc(sizeof(struct node));

 struct node *ptail=(struct node*)malloc(sizeof(struct node)); 

head=ptail; 

那么这个又是什么意思呢? 

还有 struct node *head=(struct node*)malloc(sizeof(struct node));

 struct node *ptail;

*pnew=(struct node*)malloc(sizeof(struct node)); 

head=ptail; 

ptail->next=pnew

相当于head->next=pnew吗?

查看完整描述

1 回答

?
qq_慕圣9438953

第一部分

 struct node *head=(struct node*)malloc(sizeof(struct node)); 

这句话的意思是说:定义一个大小为struct node的内存空间,这个内存空间的首地址将储存在struct node类型的指针变量head中

struct node *ptail; 

定义一个struct node类型的指针变量ptail

head=ptail;

将ptail赋值给head,也可以说是让head指向ptail


第二部分

 struct node *head=(struct node*)malloc(sizeof(struct node));

 struct node *ptail=(struct node*)malloc(sizeof(struct node)); 

这两句话的意思是:分别分配两块struct node大小的内存空间给指针变量head和ptail

head=ptail;

同理,让head指向ptail


第三部分

 struct node *head=(struct node*)malloc(sizeof(struct node));

分配struct node大小的内存空间给指针变量head

 struct node *ptail;

声明指针变量ptail

*pnew=(struct node*)malloc(sizeof(struct node));

分配struct node大小的内存空间给指针变量pnew 

head=ptail; 

让head指向ptail

ptail->next=pnew

将指针pnew所指向的内存空间的首地址,储存在ptail的next元素中

这个操作相当于head->next=pnew,但并不是随时都如此,只有在head和ptail指向同一个内存空间时才是这样

查看完整回答
反对 回复 2019-05-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信