c++递归创建二叉树,有个参数看不懂(所发程序代码是正确的)

void CreateBinTree(BinTreeNode<Type> *&t) //这个*&t表示什么意思啊,如果换成BinTreeNode<Type> *t或BinTreeNode<Type> &t,这个程序都是错的,为什么? { Type Item; cin>>Item; if(Item == refvalue) t = NULL; else { t = new BinTreeNode<Type>(Item); // 首先构造根节点 CreateBinTree(t->leftChild); // 构造左孩子 CreateBinTree(t->rightChild); // 构造右孩子 } }