讨论题:关于链表操作时参数传递问题?
如果节点是如下类型:
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参数)没有太大的区别,都能实现一样的功能,谁也不会比谁跟简单一点,但是我还是想问一下,在处理什么问题时这两种参数传递会有区别?