变量声明为Node *& ptr = root-> mRight

时间:2011-09-08 05:27:27

标签: c++ variables pointers types

我试图理解这意味着什么 我知道这是一个变量,它是一个类型为node的地址,而且是一个&获取变量的地址。我也知道在函数参数中它是一个引用指针调用。但我以前从未在变量声明中看到它...... 这究竟是什么意思

Node *&ptr = root->mRight

我知道如何使用指针以及我主要询问Node *&amp ;;变量类型。 谢谢!

2 个答案:

答案 0 :(得分:2)

在右侧,root是指向节点的指针。 root->mRight是该节点的成员,即其mright,它是指向节点的另一个指针。

在左侧,我们声明了一些内容(在使用=为其分配值之前)。如果它是Node *ptr,它将是一个指向节点的指针,但由于&,它本身并不是一个东西,它只是一个引用,是另一个这样的别名已经存在的东西。因此ptr只是指针root->mRight的另一个名称。

答案 1 :(得分:0)

要理解这一点 --> Node *&ptr = root->mRight 你把它和这个比较

int a =5;
int & al = a;

这里的“al”只是“a”的另一个名字

现在替换

int -> Node *
a   -> root->mright
ptr ->al

    

所以你会明白这里的“mRight”是一个指向Node的指针,而ptr只是“mRight”的另一个名字。