函式引數為值傳遞 引用傳遞和指標傳遞的區別

2021-08-20 21:52:11 字數 903 閱讀 9352

1)值傳遞:

int  func(int value)

int a=2;

int b=func(a); //b==3;a==2;

按值傳遞不會改變實參的值,即上例中a的值不發生變化;

函式中會產生乙個臨時的區域性變數value;

一般都會有返回值

2)引用傳遞

void func(int &value)

int a=2;

func(a); //a==3;

按引用傳遞,可以改變實參的值,如上例中a==3,因為引用實際上變數的乙個別名;

按引用傳遞,不會再定義區域性變數,形參和實參共用一塊記憶體區域;

按引用傳遞,可以不需要返回值,因為可以直接改變實參值;

按引用傳遞,適用於大型陣列的傳遞,節省記憶體。

3)指標傳遞

void func(int *value)

int a=2;

func(&a); //a==3;

按位址傳遞,與按引用傳遞類似,可以改變實參的值,如上例中a的值變為3;

與按引用傳遞不同的是,函式內定義了乙個區域性的指標變數,消耗了記憶體空間,並且按位址傳遞,還可以對位址進行加減,指向另乙個變數;

按位址傳遞,可以不需要返回值,因為可以直接改變實參值;

總結:按值傳遞的函式無法改變實參;按引用和指標可以改變實參的值;按引用節省記憶體,所以比指標好用些。

值傳遞,引用傳遞,指標傳遞

最近一直被c 的值傳遞,引用傳遞,指標傳遞這些概念所困擾,一直沒有乙個能說清他們之間的關係通過乙個簡單的例項,或者說淺顯的說法,找了一些相關資料,和自已的個人感受,簡單介紹一下,希望高人指正 c 中傳遞引數的方式有三種 傳引數的值 稱為值傳遞,簡稱傳值 傳引數的位址 稱為位址傳遞,簡稱為傳址 和引用...

值傳遞,引用傳遞,指標傳遞

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

指標傳遞 引用傳遞 值傳遞

用指標變數可以表示各種資料結構,能很方便地使用陣列,字串和鍊錶。並不是直接運算元據,而且它可以直接和記憶體打交道,使用稍有不慎,就會造成程式崩潰。使用指標的好處 1 在資料傳輸時,如果資料塊較大,這時就可以使用指標傳遞位址而不是實際資料。提高傳輸速度,又節省大量記憶體。2 在資料結構中,鍊錶 樹 圖...