参数c中的星号和&符号
作者:互联网
我正在读一本关于二元搜索树的书,有些奇怪的东西出现了.
class BST
{
public:
void insert(const Comparable & item)
private:
BinaryNode *root;
struct BinaryNode
{
Comparable element;
BinaryNode *left;
BinaryNode *right;
BinaryNode(const Comparable & theElement, BinaryNode *lt, BinaryNode *rt) :
element(theElement), left(lt), right(rt) {}
}
void insert(const Comparable & item, BinaryNode * & t) const;
};
私有插入函数是公共插入函数的辅助函数,私有插入函数寻找使用递归插入的正确位置.
我不理解的部分是BinaryNode *&参数中的t.这是什么意思?
t的地址指针?
解决方法:
在你的表达式BinaryNode *& T)
BinaryNode* & t
------------- -----
BinaryNode pointer t is reference variable
所以t是对BinaryNode类的指针的引用.
Pointer of the address of t?
你很困惑&符; c中的运算符.给出一个变量的地址.但语法不同.
&符号&在下面的一些变量前面:
BinaryNode b;
BinaryNode* ptr = &b;
但是下面的方法是引用变量(它的简单而不是指针):
BinaryNode b;
BinaryNode & t = b;
你的如下:
BinaryNode b;
BinaryNode* ptr = &b;
BinaryNode* &t = ptr;
标签:c,pointers,reference,memory-address 来源: https://codeday.me/bug/20190927/1823116.html