这是慕课网上边的c语言结构体里面的课程,为什么第19行将p2->next 的指正指向了p1的地址,随后又初始化p2,这样不是直接吧p2->next的地址就不指向p1了不是么,求大神解答!
1 回答
kevinZee
TA贡献50条经验 获得超39个赞
他把p1p2换来换去看上去确实有点难理解。
他的意思其实就是创建一个链表,利用一个变量来缓存和不断更新尾节点的指针
我在你这个函数的基础上简单调整了一下,可能更便于你的理解
struct weapon * create(){ struct weapon * head = NULL; struct weapon * tail = (weapon *) malloc(sizeof(struct weapon)); scanf("%d %d",&(tail->price),&(tail->atk)); int n = 0; while(tail->price != 0){ n++; if(n == 1){ head = tail; }else{ //创建一个新的节点 struct weapon * new_tail = (weapon *) malloc(sizeof(struct weapon)); scanf("%d %d",&(new_tail->price),&(new_tail->atk)); new_tail->next = NULL; //将这个新节点和当前的尾节点相连 tail->next = new_tail; //更新尾节点指针 tail = new_tail; } } return head; }
- 1 回答
- 0 关注
- 1409 浏览
添加回答
举报
0/150
提交
取消