仔细想了一下这个问题应该是這样的一个逻辑:简单来说,指针传参指针变量(临时)存储的是某变量的地址,但是只能改变所指向的数据本身而不能改变其地址(指针)。
如果要改变地址(即指针所指向的那个数据的地址)如代码中的 *pre = *p,自然就需要通过指针的指针作为参数
下面是以中序遍历線索二叉树构造算法为例,来帮助理解指针传参
*p:指向当前访问的结点,*pre:指向上一个访问过的结点,用于构建前驱和后继*/
从CreateInThread函数中的 pre->rchild = NULL 可以看出pre指针已经被修改,它所保存的地址发生了变化指向了中序遍历序列最后一个结点,因为该结点没有后继所有后继为NULL。
指针与指针变量嘚地址是有区别的前者一般是某个变量在内存中的地址,后者是系统给指针变量分配的地址其实就是指针的指针。