用指针打印二进制搜索树C++的奇怪方法

use*_*354 0 c++ pointers dereference

我正在进行一个讲座,它显示了一些代码以递归方式打印出二进制搜索树

void printTree(node *t){
    if(t!=NULL){
        printTree(t->left);
        cout<<t->key<<endl;
        printTree(t->right);
     }
 }
Run Code Online (Sandbox Code Playgroud)

我理解它在做什么,但我不明白指针.该函数正在向"cout"行中的节点传递指针,它试图访问节点结构中的键值而不首先解除引用它.我的意思是,不应该是这样的

cout<<(*t)->key<<endl;
Run Code Online (Sandbox Code Playgroud)

代替?

Grz*_*rek 6

实际上,->是一个解除引用的运算符.你可以做出选择:

cout<<t->key<<endl; 要么 cout<<(*t).key<<endl;