猿问

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

有点不明白链表里面的

 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吗?

依木兰
浏览 957回答 3
3回答

qq_慕圣9438953

第一部分 struct node *head=(struct node*)malloc(sizeof(struct node)); 这句话的意思是说:定义一个大小为struct node的内存空间,这个内存空间的首地址将储存在struct node类型的指针变量head中struct node *ptail; 定义一个struct node类型的指针变量ptailhead=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和ptailhead=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指向ptailptail->next=pnew将指针pnew所指向的内存空间的首地址,储存在ptail的next元素中这个操作相当于head->next=pnew,但并不是随时都如此,只有在head和ptail指向同一个内存空间时才是这样
随时随地看视频慕课网APP
我要回答