* 和 *& 在参数传递中的区别——C++
2021-01-17 22:14
标签:tag poi 参数传递 void read 构造 class ++ std 最近在进行前序插入构造二叉树时被 * 和 *& 绊了一下。先贴错误代码: 第十八行的形参是 * T,为指向T的一个指针,main函数中调用时,将指针T传入,malloc() 函数申请的内存会在该函数结束时全部释放。这相当于没有二叉树没有进行构造。这是因为形参是一个传值引用,* T会对传入参数进行复制。因此,该函数运行结束后,只能改变传入指针指向的值,并不能改变该指针的指向。 若将形参变为 * 和 *& 在参数传递中的区别——C++ 标签:tag poi 参数传递 void read 构造 class ++ std 原文地址:https://www.cnblogs.com/Rane/p/12916137.html#include
BinaryTreeNode *&T
,即指针的引用,就可以改变传入指针的指向或是指针指向的值。具体代码如下:void CreateBinaryTree_PreOrder(BinaryTreeNode *&T){
Elemtype temp;
cin>>temp;
if(temp == ‘#‘){
T = nullptr;
return ;
}else{
T = (BinaryTreeNodePtr)malloc(sizeof(BinaryTreeNode));
T->data = temp;
}
CreateBinaryTree_PreOrder(T->lchild);
CreateBinaryTree_PreOrder(T->rchild);
}
文章标题:* 和 *& 在参数传递中的区别——C++
文章链接:http://soscw.com/index.php/essay/43385.html