函式傳參,指標與引用的區別。(例項分析)

2021-09-28 20:37:15 字數 594 閱讀 9018

這幾天做了個二叉樹的實驗,在執行時發現乙個問題,**如下:

二叉樹的結構體:

typedef

struct binarytreenode

bitnode,

*bitree;

void

precreatebitree

(bitree t)

}

問題是:在main函式中呼叫此函式後,返回的為空樹。通過除錯,我發現在函式中的指標t是成功建立了二叉樹的。因此,應該是返回的問題。剛寫這個函式時以為,函式只要是傳入指標,對應的值就會改變。通過更改為如下**則執行正常:

void

precreatebitree

(bitree &t)

}

其實就是加了個引用符。

總結如下:

①函式傳入指標:確實可以更改對應位址的值,比如傳入的是int a,那麼你就可以在函式內更改a。同理,你如果想更改a,那傳入的應該是**a。我們只能更改其內容,不能在函式裡改其指向。

②函式傳入引用:引用就是變數的別名,相當於直接操作了變數,顯然可以達到目的。

指標與引用傳參

1.常量指標 const int p a,指標的指向可以改,指標指向的值不可以改 2.指標常量 int const p a,指標的指向不可以改,指標指向的值可以改 3.const既修飾指標,又修飾常量 const int const p a 指標的指向和指標指向的值都不可以改 對於函式引數,例如寫乙...

引用傳參和指標傳參的差別

在c 中,如果函式的實參的型別是資料型別比較大的資料型別,這是如果使用一般傳參就會有很大的不方便,這是如果能夠傳遞乙個位址或者是對原來引數的乙個引用對提高效能會有很大的幫助。本文研究一下引用傳參和指標傳參的區別和聯絡。其實引用傳參和指標傳參都能夠在條用函式內部對源資料進行修改,這是它們的共同點,但是...

傳指標和傳指標引用的區別 指標和引用的區別(本質)

指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...