为什么在将节点插入头(链表)时使用双指针?

时间:2019-04-03 06:09:04

标签: c pointers linked-list

int list_insert_head(node **phead, int data){
  node *newnode = malloc(sizeof(node));
  if(newnode == 0)
    return 0; /*memory allocation failed*/
  newnode -> data = data;
  newnode -> next = *phead;
  *phead = newnode; /* what is this?*/
  return 1;

}

所以我不太确定为什么您必须传递双指针** phead, 并且仅在函数内部使用单个指针* phead。 我假设您使用双指针b / c来操纵实际的头,它本身就是一个单指针。 顺便说一下,如果要执行此功能,

*phead = newnode;

为什么不只在函数参数中传递* phead?

谢谢。

0 个答案:

没有答案