关于二级指针,本人在二叉树的学习中,由于C语言指针的不扎实导致时时无法理解二级指针的使用,这里写篇博客来讨论下现在的理解
首先,由上篇博客可以得出个人总结,在指针的调用中需要弄清是修改指针自身内容即指针所指向的地址,还是修改指针指向的地址中所
保存的内容,所以在二叉树的递归创建中,我们每次递归修改的是指针指向的地址即我们修改的是指针自身的内容,来操作二叉树的节点
,同时将保存地址中的内容一并修改,这就导致当函数调用结束时,形参释放,实参保存的地址依旧是最初的地址,释放过程中丢失了最
后的地址,无法通过该地址找到修改后的地址中的内容,无法通过函数影响实参。
所以针对这种情况,我们就需要使用二级指针,因为使用二级指针时,我们修改的是二级指针所保存的地址,以及最终地址所保存的内容
当函数调用时形参时,修改二级指针中保存的一级指针的地址,在修改一级指针所保存的地址中的内容。当函数调用结束时,释放形参,
实参所指向的一级指针的内容并未修改,但是一级指针中保存的地址所指向的内容被修改,就起到形参修改了实参的作用,仅仅丢失了被
修改的一级指针的地址。
(初学者的理解,有误的地方望各位大大指出~~~)