C语言问题?
这里的p在第一次循环时就赋值了一个地址,第二次循环时又是怎么做到用一个新的p去开辟一个空间,而不是原来已经赋值地址的p...
这里的p在第一次循环时就赋值了一个地址,第二次循环时又是怎么做到用一个新的p去开辟一个空间,而不是原来已经赋值地址的p
展开
2个回答
展开全部
从截图代码分析,这是一个创建链表的函数,p是用于传递参数的临时变量:
在这段代码中指针变量head是指向链表头节点的指针,p是指向新建节点的指针。
循环是当用户有输入时,就新建一个节点(malloc那句代码)。
p用于指向新建的那个节点地址,目的是用于后面函数传参,只是一个临时存储用的变量,所以每次循环都指向一个新建的地址。
这个函数关键功能就是后面调用的InsertDoc。这个函数你没有贴出来,但从函数名及代码内容可分析出,这个函数的有两个参数分别是1、链表头节点地址(head)。2、需要插入链表的新节点地址(p)。之后这个函数会将新建的节点p连接到链表中(通过对应节点的链表指针赋值)。
PS:另外你贴的代码head初值是NULL,所以头结点的创建和判断也在InsertDoc中实现。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询