对单链表操作的函数采用二维指针的原因

来源:互联网 发布:有用java编写的网游 编辑:程序博客网 时间:2024/05/16 16:13

想了好久,才搞清楚为什么对单链表操作的很多函数都采用二维指针。

比如说删除头结点,即将头结点指针向后移动一个,再删除头结点。原先以为只要传入头结点指针(一维:指向链表节点的指针),后来发现这个是不正确的,还是没有真正掌握传值和传地址的区别。

 

eg:

 void func(int *q)

{

       q=0x0002;

}

现比如说实参int *p指向0x0001的地址,传给形参q,形参会复制实参内容(q也指向地址0x0001)。该函数对指针进行操作如q=0x0002,而实参p就不会改变。

 

原创粉丝点击