我试图理解这意味着什么 我知道这是一个变量,它是一个类型为node的地址,而且是一个&获取变量的地址。我也知道在函数参数中它是一个引用指针调用。但我以前从未在变量声明中看到它...... 这究竟是什么意思
Node *&ptr = root->mRight
我知道如何使用指针以及我主要询问Node *&amp ;;变量类型。 谢谢!
答案 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”的另一个名字。