方法接收參考型別參數時,取得的是「參考的副本」。預設情況下,方法可修改物件內容,但無法變更呼叫端變數指向的物件實例。
加上 ref 後,方法拿到的是「變數儲存位置的位址」(即雙重指標),可直接替換呼叫端變數指向的物件,甚至設為 null。

ref:方法獲得位址 10000 的副本,修改陣列元素影響原物件,但 array = new int[]{...} 僅改變區域變數ref:方法獲得位址 2000,array = new int[]{...} 會修改呼叫端變數指向,原陣列可能被 GC 回收void FirstDouble(int[] arr) { // 無 ref
for (int i=0;i
執行結果證明:SecondDouble 呼叫後,呼叫端陣列變數指向新陣列 {11,12,13},原陣列與副本變數不再相同。