c++在傳參的過程中,指標()和指標引用(&)是有區別的。
雖然,我們往往可以通過傳指標然後通過間址訪問來修改指標所指向物件的值,同樣,通過引用也可以直接修改物件的值。
但是,當傳指標的時候有乙個問題,就是,我們雖然可以通過指標來修改指標所指向物件的值,但是我們沒有不能直接修改指標的內容(也就是指標變數存放的位址),因為函式傳參時實際上是把該指標複製了一遍,雖然指標裡面存放的位址還是我們原本那個物件的位址,但是指標變數卻不是原來的指標變數了。
所以,當我們想要在函式裡修改傳過來的指標變數的位址的時候,就必須使用指標引用,否則,這種修改是「無效的」
#includeusing namespace std;
class node ;
void fun1(node* node)
void fun2(node*& node)
int main()
傳指標並沒有修改到該指標的值,而是新建了乙個指標指向了乙個新的物件
1傳指標引用把傳進來的指標指向乙個新的物件,並修改該物件的值
2請按任意鍵繼續. . .
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...