永发信息网

c语言链表里的一段代码的含义

答案:2  悬赏:50  手机版
解决时间 2021-02-20 01:23
pNew->data = val;
pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
这是创建链表最核心的一个步骤,当初讲的时候我还是理解的,好久不用再看就忘了。。虽然已经背下来了不过还是希望能够深刻的理解心理比较舒服
这里
pNew->data = val;
pNew->pNext = NULL;
pTail = pNew;
我觉得和正常的意思是一样的了,不过我运行了下不能输出链表,所以pTail->pNext=pnew是必不可少的,但是我又看不出他的意义所在,归根结底还是我对指针的认识不够透彻,因为创建链表前边肯定有个pTail = pHead,不过因为是pTail在前面所以也影响不到pHead,而最下边的返回值是return pHead,这也是我不理解的一点,请大神帮忙疏通下思路

我思考了下大概理解的,不知道是不是也可以这样写
pNew->data = val;
pTail->pNext = pNew;
pTail = pTail->Next;
pTail->next = NULL;
最佳答案
pNew->data = val;
pNew->pNext = NULL;
pTail = pNew;
这个是新创建的节点,将val赋值给节点的data~
然后将新节点的next指向一个空~防止野指针
接下来的就是把Ptail指向新节点,代表这个是尾节点已经到了pNew的位置~
pTail->pNext=pnew这句话其实是将尾节点的next指向pNew的地址,实现链表的链接~
你修改之后
pTail = pTail->Next;这句话我表示不是很懂~是不是写错了~为什么要把尾指针的next指向尾指针?????
你是不是想写将尾指针移到新创建的指针上去,那应该是这样写pTail = pNew;
全部回答

#include "stdio.h" #include "stdlib.h"

struct student{  char name[20];  int  num;  float chengji[3];    char  level[3];      struct student *next; } *head ; typedef struct student stu;

void input()  //输入功能 {  char ch;  struct student *p1,*p2;

 file *fp;

 head=null;  do  {  p1=(struct student *)malloc(sizeof(stu));  if (head==null) head=p1,p2=p1;  else p2->next=p1;  printf("请输入姓名:\n");  scanf("%s",p1->name);  printf("请输入学号:\n");  scanf("%d",&p1->num);  fflush(stdin);  printf("请输入网络成绩\n");  scanf("%f",&p1->chengji[0]);  printf("请输入c语言成绩:\n");  scanf("%f",&p1->chengji[1]);  printf("请输入英语成绩:\n");  scanf("%f",&p1->chengji[2]);  p1->next=null;  printf("是否继续输入y/n\n");  fflush(stdin);  ch=getchar();  fflush(stdin);  }while(ch=='y'||ch=='y');

 if((fp=fopen("file.dat","ab"))==null) return;   //fp=fopen("file.dat","wb");  while(head!=null)  {   fwrite(head,sizeof(stu),1,fp);     head=head->next;  }  fclose(fp);     } void main() {  input(); }

vc6通过

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国移动通信鸡泽双塔集贸街营业厅我想知道这
为什么大年初一不能走亲戚啊
一个两位数它的十位上的数字比个位上的数字大
榆林公路管理局青云收费处工会委员会怎么去啊
肚脐眼周边按压会痛,是怎么回事
医院买的这个一瓶多少钱?BL宝龄丽碧雅传明酸
网购售后问题卖家一直拖着不处理怎么办
星光艺术文化培训学校地址在哪,我要去那里办
人体内产生抗体的细胞是DA. B. 效应T细胞C.
有车没车的区别原来是这样的
从新港坐哪路公车去滨海飞机场最方便?
霖雨桥地址在什么地方,想过去办事
请问什么是有机质和无机质?
【一问一答耍人的笑话】...(那我呢?)有你什么
乡下孩子生在阳光下,长在旷野里,城里小孩下
推荐资讯
新州桥怎么去啊,有知道地址的么
600348股票尾盘突然拉升,意味着什么?
【明天用英语怎么说】“在明天”用英语怎么说
2000年,世界上每10个人中约有22亚洲人CA. 2
蝈蝈两条大腿都断了之后它就不怎么叫了这是为
KINGSUN什么牌子手机
如果一切都是天意,一切都是命运,终究已注定
据研究,在人脑中有一种与人的痛觉和学习记忆
北大青鸟不退学费,我该怎么维权?
我是真的真的真的很爱你.翻译
设有下列程序: Private Sub Form_Click()
是不是泰山上的任意一个石头都是泰山石吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?