結構體指標作為函式引數傳遞卻無法傳值的有關問題
阿新 • • 發佈:2019-02-15
今天做C++作業遇到一個問題,需要寫一個函式(在連結串列中新增新的節點)將結構體指標作為形參,結果發現傳遞之後無法改變結構體的值,連結串列的長度還是沒變。通過查詢資料,發現把形參改為對結構體指標的應用即可解決問題。
原始碼:
struct Tnode { string word; int counts; Tnode* left; Tnode* right; }; void insert_Tnode(struct Tnode *L,string str,int numbers) { struct Tnode *newd = new Tnode;//建立新節點 if(newd == NULL) exit(1); newd->word = str; newd->counts = numbers; L->right = newd; newd->left = L; newd->right = NULL; L = newd; }
執行後發現原來傳進來的L連結串列並沒有變化,對程式碼進行修改如下即可。
將函式的宣告進行修改為:
void insert_Tnode(struct Tnode *&L,string str,int numbers)
參考資料:http://bbs.csdn.net/topics/70168422