一级指针与二级指针的区别 -----在链表中的实例

一级指针与二级指针的区别:

在传递一级指针时,只有对指针所指向的内存变量做操作才是有效的;

在传递二级指针时,只有对指针的指向做改变才是有效的;


实例1:

int a=1;

int *p=&a;  // p为a变量的地址,通过*p可以得到a的值

int **q=&p;   // q为p指针的地址,通过**q可以得到a的值 


实例2:

在链表或者树的操作中,也需要用到二级指针,

比如创建链表的头指针:

在初始化链表函数中,传入头指针,并在函数中为该指针分配空间,此时就应该使用二级指针,如void initLinklist(Node **head);

而在添加删除结点的过程中,我们并没有改变函数参数指针的指向,而是通过传入的指针如Node *head,找到要删除结点的位置,并未对该指针做改变,因此退出函数后,该指针无影响。

猜你喜欢

转载自blog.csdn.net/qq_42211587/article/details/80806099