typedef struct TreeNode {ElemType data;struct TreeNode* LeftChild, * RigthChild;}TreeNode, * BitTree;void CreatePreOrderTree(TreeNode*& T) {ElemType ch;cin >> ch;//AB#D##C##if (ch == '#')//说明这个位置是空结点T = NULL;else {T = new TreeNode;//为结点开辟内存空间T->data = ch;//生成结点CreatePreOrderTree(T->LeftChild);//构建左子树CreatePreOrderTree(T->RigthChild);//构建右子树}}main(){TreeNode* p;CreatePreOrderTree(p);}请问各位 这个void CreatePreOrderTree(TreeNode*& T)函数的参数为什么不是void CreatePreOrderTree(TreeNode* T)这样的,还带了个&,指针p的类型明明是TreeNode*类型的啊 可是为什么到了形参哪里就变成了TreeNode*& T这个样子,这个&是按照引用来理解还是按照地址来理解呢?按照地址来理解的话&和*应该是一对互逆运算符啊。要是按照引用来理解好像也不太对把?
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
struct 结构类型是值类型 所以这里要加& 表示对TreeNode参数的引用
如果把上面的TreeNode 用class来定义就不需要&了
你要先弄清楚值类型和引用类型的区别
添加回答
举报
0/150
提交
取消