本文章僅為個人學習總結,如有錯誤請指正。
首先區分,引用傳遞和引用型別無關,值傳遞和值型別無關。
建議自己定義乙個類,通過類來感受一下引用傳遞和值傳遞的區別。
out和ref都可以實現引用傳遞,但是之間的區別通過引數修飾符的文章進行全面了解。
通過兩個demo說明:
引用傳遞和值傳遞最大的區別為能否改變所引用的物件,當乙個實參傳遞給函式時,在函式內部對實參進行了重新賦值後,是否可以將位址的引用重新傳遞給實參。
demo1:
當傳遞的是引用型別的變數時,引用傳遞和值傳遞的區別:
string字串使用了ref後,變為了引用傳遞。
private void button1_click(object sender, eventargs e)
//值傳遞
public void processstrupper(string str)
//引用傳遞
public void processstrlower(ref string str)
demo2:
當傳遞為值型別的變數時,,引用傳遞和值傳遞的區別:
private void button2_click(object sender, eventargs e)
//值傳遞
public void processintadd(int num)
//引用傳遞
public void processintsub(ref int num)
C 值傳遞 指標傳遞 引用傳遞詳解
值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作.引...
C 值傳遞 指標傳遞 引用傳遞詳解
最近寫了幾篇深層次討論陣列和指標的文章,其中提到了 c語言中,所有非陣列的形式引數傳遞均以值傳遞形式 而關於值傳遞,指標傳遞,引用傳遞這幾個方面還會存在誤區,所有我覺的有必要在這裡也說明一下 下文會通過例子詳細說明哦 值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來...
C 值傳遞 指標傳遞 引用傳遞詳解
而關於值傳遞,指標傳遞,引用傳遞這幾個方面還會存在誤區,所有我覺的有必要在這裡也說明一下 下文會通過例子詳細說明哦 值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變...