struct BiTree{
char data;
BiTree *LChild;
BiTree *RChild;
};
//先序遍歷創建二叉樹
void Create_BiTree_ByPrev_2(BiTree** T)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
{
*T=NULL;
}else{
*T=(BiTree*)malloc(sizeof(BiTree));
if(!*T)
{
exit(OVERFLOW);
}
(*T)->data=https://bbs.csdn.net/topics/ch;
Create_BiTree_ByPrev_2(&(*T)->LChild);
Create_BiTree_ByPrev_2(&(*T)->RChild);
}
}
疑問:
1.我發現創建二叉樹的函式通常都用到二級指標(如上),為什么不用一級指標呢?
2.二級指標給我的感覺很不直觀,用到二級指標有什么好處呢?
3.一級指標用于改變變數,二級指標用于改變指標的指向,那通常什么時候才需要用到二級指標呢?
uj5u.com熱心網友回復:
因為寫代碼的人對定義介面毫無規劃 胡亂操作uj5u.com熱心網友回復:
簡單說,一級指針用來改變值,二級指針用來改變鏈表。比如定義了一個指針,把他傳給函數,之前必須分配好記憶體,函數可以改變該記憶體區的值;
把他的指針傳給函數,則可以在函數內部分配記憶體,或指向另一個地方,對於構建鏈表靈活得多。
uj5u.com熱心網友回復:
這個問題類似swap()為什么用指標,而不用變數來實作兩個資料交換,道理是一樣的~uj5u.com熱心網友回復:
請參考《指向指標的指標》希望能夠幫到您!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/188285.html
標籤:C語言
