Both asterisk and ampersand in a parameter

In your expression BinaryNode * & t)

            BinaryNode*                & t
           -------------              -----
            BinaryNode pointer        t is reference variable  

so t is reference to pointer of BinaryNode class.

Pointer of the address of t?

You are confused ampersand & operator in c++. that give address of an variable. but syntax is different.

ampersand & in front of some of variable like below:

BinaryNode b;
BinaryNode* ptr = &b;

But following way is for reference variable (its simple not pointer):

BinaryNode b;
BinaryNode & t  = b; 

and your is like below:

BinaryNode b;
BinaryNode* ptr = &b;
BinaryNode* &t  = ptr;  

Leave a Comment