其他分享
首页 > 其他分享> > 参数c中的星号和&符号

参数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