C 引用呼叫 指標傳遞

2021-06-28 21:05:44 字數 825 閱讀 4955

操作位址是實參位址,相當於實參的乙個**別名**,因而對其操作即對實參的操作
(1)引用建立同時需被初始化。

(2)不能有null引用。

(3)一旦引用被初始化,即不可改變引用的關係

如下為常量引用

int findmax(const

vector

& array);

常量引用保證:

-省去副本開銷

-函式呼叫不會改變實參

指標傳遞時,當對形參的指向操作時,就相當於對實參本身進行的操作。指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值。
引用呼叫與指標用於那些可能被函式改變的物件,(指標可改變的特性使其有更多靈活應用)。

傳值呼叫適用於那些不應該被函式改變的物件

常量引用呼叫適用於那些不應該被函式改變的大型物件

程式在編譯時分別將指標和引用新增到符號表上,符號表上記錄的是變數名及變數所對應位址。指標變數在符號表上對應的位址值為指標變數的位址值,而引用在符號表上對應的位址值為引用物件的位址值。符號表生成後就不會再改,因此指標可以改變其指向的物件(指標變數中的值可以改),而引用物件則不能修改。

C 函式呼叫之 值傳遞 指標傳遞 引用傳遞

1 值傳遞 形參時實參的拷貝,改變函式形參並不影響函式外部的實參,這是最常用的一種傳遞方式,也是最簡單的一種傳遞方式。只需要傳遞引數,返回值是return考慮的 使用值傳遞這種方式,呼叫函式不對實參進行操作,也就是說,即使形參的值發生改變,實參的值也完全不受影響。2 指標傳遞 指標傳遞其實是值傳遞的...

C 函式呼叫之 值傳遞 指標傳遞 引用傳遞

1 值傳遞 形參時實參的拷貝,改變函式形參並不影響函式外部的實參,這是最常用的一種傳遞方式,也是最簡單的一種傳遞方式。只需要傳遞引數,返回值是return考慮的 使用值傳遞這種方式,呼叫函式不對實參進行操作,也就是說,即使形參的值發生改變,實參的值也完全不受影響。2 指標傳遞 指標傳遞其實是值傳遞的...

c 值傳遞 指標傳遞 引用傳遞

值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作 引...