C 函式傳遞引用指標引數問題

2021-10-18 10:36:57 字數 1402 閱讀 9506

僅作為參考、記錄

函式如果直接傳遞指標,如呼叫init_linklist(l)l的初始指向為null,對l進行賦值,l指標不在指向null,而是指向new linklist 後的位址,但是無法對傳入的實參進行修改,l仍然指向null

這裡指標的傳遞仍然為值傳遞

//初始化鍊錶

status init_linklist

(linklist *l)

解決無法對傳入的指標修改的問題

使用引用可對傳入的實參進行修改

//使用引用可對傳入的實參進行修改

status init_linklist

(linklist *

&l)

返回修改後的指標型別

linklist init_linklist

(linklist *l)

完整**

//main函式

#include

typedef

int elemtype ;

typedef

bool status ;

#define ok true

#define error false

typedef

struct nodelinklist;

/** * 初始化

*/status init_linklist

(linklist *l)

/** *向單鏈表中插入資料

* @param l

* @param i i從1開始

* @param e

* @return

*/status insert_linklist

(linklist *

&l,int i, elemtype e)

//找到插入的位置

//單鏈表插入

//前插入

if(i==j)

else

return ok;

}void

print_linklist

(linklist *

&l)}

intmain()

else

std::cout <<

"hello, world!"

<< std::endl;

return0;

}

這位博主的解釋可能會比較清楚

參考:c語言指標作為函式引數傳遞學習(一)

引數傳遞(引用,指標,值傳遞)C 11

c 中,函式的引數傳遞方式有值傳遞 位址傳遞。傳位址有指標和引用方式。在函式引數中,傳位址的理由有 1.使被調函式可以修改主調函式中的資料物件 2.傳位址可以減少資料拷貝,提高程式執行速度。那麼,何時使用值傳遞,何時使用位址傳遞 指標和引用 下面是一些寫 時會遇到的一些情況 如果要傳入函式的資料物件...

c語言 函式 用指標傳遞引數 問題

問題1 你是把變數傳給了函式,還是把位址傳給了函式?例 include stdio.h include stdlib.h include string h void oxx char dest void oxx2 char dest intmain 同樣是傳了指標給函式,對指標進行了不同的操作 1 ...

C 函式引數 值傳遞與引用傳遞

以前我們在c語言中函式引數傳遞過程中,如果我們想要讓當a函式作用域中的變數經過b函式處理之後的數值仍然在a函式中生效,這個時候函式引數的傳遞時需要引用方式去傳遞,方式如下 include 函式引數為指標,通過修改指標裡面的內容達到對main中b變數的修改 void func int a int ma...