p=(people*)malloc(sizeof(people)); //people是个结构,p相当于people的一个实例,动态分配的。
p->num=i+1;//将p中num赋值
p->next=tail->next;//p的next指针指向链表末尾数据的next指向的内容,估计NULL了
tail->next=p;//让末尾next指针指向p
tail=p;//现在p是末尾数据了
申请一个 people 类型的空间
该空间地址值赋予 指针p;
根据你的代码,估计你写的是链表程序,然后做出如下估计:
p 指向的是链表的新增节点
p->num=i+1; //设置该节点的值
p->next=tail->next; //该节点的指针域指向尾节点的指针域(尾节点的指针域应该为NULL)
tail->next=p; //原来尾节点的指针域指向新增节点(即把新增节点放于链表的尾部)
tail=p; //修改尾节点的值,让其指向新的尾节点
malloc分配内存 大小为和结构体people一样 (people*)强制类型转换成结构体的指针,赋值给p。
把i+1赋值给p结构体中num的中。
结构体p的next指针指向tail的next的指针。
tail的next指针指向p。
tail=p。
整体实现的就是分配一个结构体把里面num的值+1,然后插在已知链表的后面,tail为已知链表的最后一个结构体指针。
就是在链表或其他末尾添加一个新的节点