指针的引用
?????
????? 种了几个小时的树,竟然发现自己对指针引用却一窍不通,黯然神伤啊...
?
遇到的情况
????? 一开始初始化一个root节点赋为NULL,然后是建树,当以先序遍历整棵树输出节点值时,发现树总是空的。开始以为内存没有分配出来,直接调了几小时,才发现是自己不懂得指针引用!这么基础都不懂啊,怎能不叫人心惊胆战……
?
查漏补缺
????? 很清楚,在传值调用中,改变形参不会影响实参(形参是实参拷贝),如果形参是单指针,可以实实在在地影响实参的值(形参和实参指向同一块堆区)。
????? 虽然单指针形参可以改变堆的值,但是有一样东西是改变不了的——指针的指向。
void test(int *&p);
?
??????运行结果就打印出了200。
?
?
小结:
?????? 如果使用单纯的指针,形参不能改变实参的指向。但如果是指针的引用就不同了,改变了形参的指向,实参的指向也会随之改变。
?????? 懂了这个语法再去种树,树理所当然就可以生成了。
?
?