結構體指標作為函式引數傳遞卻無法傳值的有關問題

2021-06-22 07:14:13 字數 390 閱讀 2645

今天做c++作業遇到乙個問題,需要寫乙個函式(在鍊錶中新增新的節點)將結構體指標作為形參,結果發現傳遞之後無法改變結構體的值,鍊錶的長度還是沒變。通過查詢資料,發現把形參改為對結構體指標的應用即可解決問題。

原**:

struct tnode

;void insert_tnode(struct tnode *l,string str,int numbers)

執行後發現原來傳進來的l鍊錶並沒有變化,對**進行修改如下即可。

將函式的宣告進行修改為:

void insert_tnode(struct tnode *&l,string str,int numbers)

結構體作為函式引數傳遞

結構變數是乙個標量,它可以用於其他標量可以使用的任何場合,但把結構體作為引數傳遞給乙個函式要注重效率 例如下面這樣乙個結構體 define product size 20 typedef structtransaction 如果我們需要列印裡面的資料,函式原型為 void print receipt...

結構體作為函式引數(值傳遞,引用傳遞,指標傳遞)

一 值傳遞 include include using namespace std struct student void outcome student s 引用傳遞不會進行記憶體重新分配,因此和指標傳參類似,效率很高 void outcome student s 引用傳參 outcome stu...

結構體和結構體指標作為引數傳遞

結構體作為引數傳遞 include includeusing namespace std 宣告結構體 struct namect 函式宣告必須提供資料型別,但是可以不傳引數 struct namect getinfo void 宣告函式的返回值是乙個結構體,引數型別也是結構體,這裡結構體作為引數值直...