[英]Strange way of printing Binary Search Tree C++ with pointers
我正在聽一次講座,它顯示了一些代碼,像這樣遞歸地打印出二進制搜索樹
void printTree(node *t){
if(t!=NULL){
printTree(t->left);
cout<<t->key<<endl;
printTree(t->right);
}
}
我了解它在做什么,但我不了解這些指針。 該函數正在將指針傳遞到尚未在'cout'行中的節點,它試圖訪問節點結構中的鍵值而不先取消引用它。 我的意思是,不應該是這樣
cout<<(*t)->key<<endl;
代替?
實際上, ->
是解引用運算符。 您可以選擇:
cout<<t->key<<endl;
或cout<<(*t).key<<endl;
但是絕對不是“(* t)-> key”-這將是雙重deref,如果不是崩潰,可能是編譯錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.