1. 值引數
當利用值向方法傳遞引數時,編譯程式給實參的值做乙份拷貝,並且將此拷貝傳遞給該方法。被呼叫的方法不傳經修改記憶體中實參的值,所以使用值引數時,可以保證實際值是安全的。在呼叫方法時,如果形式化引數的型別是值引數的話,呼叫的實參的值必須保證是正確的值表示式。在下面的例子中,程式設計師並沒有實現他希望交換值的目的:
複製** **如下:
using system;
class test
static void main(),j=",i,j);}}
編譯上述**,程式將輸出:
i=1,j=2
2. 引用型引數
和值參不同的是,引用型引數並不開闢新的記憶體區域。當利用引用型引數向方法傳遞形參時,編譯程式將把實際值在www.cppcns.com記憶體中的位址傳遞給方法。
在方法中,引用型引數通常已經初始化。再看下面的例子。
www.cppcns.com
複製** **如下:
using system;
class test
static void main(),j=",i,j);}}
編譯上述**,程式將輸出:
i=2,j=1
maiwww.cppcns.comn函式中呼叫了swap函式,x代表i,y代表j。這樣,呼叫成功地實現了i和j的值交換。
在方法中使用引用型引數,會經常可能導致多個變數名指向同一處記憶體位址。見示例:
複製** **如下:
class a
void g()
}在方法g對f的呼叫過程中,s的引用被同時傳遞給了a程式設計客棧和b。此時,s,a,b同時指向了同一塊記憶體區域。
本文標題: c#: 引用變數與數值變數的區別
本文位址:
PHP變數引用賦值與變數賦值變數的區別
變數預設總是傳值賦值。那也就是說,當將乙個表示式的值賦予乙個變數時,整個原始表示式的值被賦值到目標變數。這意味著,例如,當乙個變數的值賦予另外乙個變數時,改變其中乙個變數的值,將不會影響到另外乙個變數。有關這種型別的賦值操作,請參閱表示式一章。foo abc b foo b my name is b...
C 引用與變數名的區別
1.string fun1 在程式中使用此方法不會報錯,因為方法執行完畢以後雖然num被釋放,但是num的值會被儲存到乙個臨時儲存單元,然後從臨時儲存單元複製到呼叫此方法給其賦值的變數中去 如 在main方法中 string mynum fun1 num的值就會被儲存到mynum 2.string ...
C 變數的引用 使用變數的引用
c 可以對乙個資料可以使用引用,引用是c 對c語言的乙個重要擴充,引用是一種新的變數型別,它的作用是為乙個變數起乙個別名。比如要給變數temp起個別名change int temp 定義整型變數temp int change temp 宣告change是temp的引用上述 宣告了change是tem...