+ -
当前位置:首页 → 问答吧 → 讨论题:关于链表操作时参数传递问题?

讨论题:关于链表操作时参数传递问题?

时间:2011-07-31

来源:互联网

如果节点是如下类型:
typdef struct node* Node;
struct node{
  Node next;
  int val;
};
写插入函数时通常会有这样两种形式:
int insert(Node head,int data){ //参数Node head:头指针
  ...
}
int insert(Node *head,int data){ //参数Node *head:头指针地址
  Node p;
  p=*head;
  ...
}
其中省略号表示进行插入操作的代码,对于简单的链表操作函数,似乎这两种参数传递(传递Node head参数和传递Node *head参数)没有太大的区别,都能实现一样的功能,谁也不会比谁跟简单一点,但是我还是想问一下,在处理什么问题时这两种参数传递会有区别?

作者: heartgoon2010   发布时间: 2011-07-31

如果在插入的时候,需要修改链表的头指针的时候,就有区别了,第一个是一级指针,不能修改头指针的地址的,而第二个是二级指针是可以修改头指针的,这个就是区别。。

作者: Hackbuteer1   发布时间: 2011-07-31