一如果函式對傳入的指標引數進行修改,一定要把引數設定為指標的指標或者指標的引用
// delete the first occurrence of the node
// which value equals item in a single linked list
void
delete(node *head,intitem)
這段**的問題是,第乙個引數是指標型別
而head = null修改的實際上是這個指標的乙個副本(#add 誠然 這段**僅為了用於防止野指標,因為僅將傳入指標置為null,而沒有去操作指標,顯然喪失了指標的功效)
所以不會對原來的指標產生效果,下面兩種方法都可以改正這個錯誤
void
delete(node **head,intitem) //pointer to pointer
void
delete(node *&head,intitem)// pointer to reference
c 程式設計的一些技巧
第一點,使用全域性物件的建構函式在程式啟動前呼叫函式 有一些應用程式需要在主程式啟動前呼叫其它函式。如 轉態過程函式 登記 功能函式都是必須在實際程式執行前被呼叫的。最簡單的辦法是通過乙個全域性物件 的建構函式來呼叫這些函式。因為全域性物件都是在主程式開始前被構造,這些函式 都將會在main 之前返...
C 的一些學習技巧!
指標代表的是記憶體單元的編號或位址,通過指標就可以找到對應的記憶體單元。對指標進行初始化或賦值的實質是將乙個位址或同型別 或相相容的型別 的指標賦給它,而不管這個位址是怎麼取得的。1 指標的初始化 指標初始化時,的右運算元必須為記憶體中資料的位址,不可以是變數,也不可以直接用整型位址值 但是int ...
oracle SQL一些技巧
1 當前時間加7天 select sysdate interval 7 day from dual 2 當前時間減10分鐘 select sysdate interval 10 minute from dual 3 當前時間加3秒 select sysdate interval 3 second f...