傳值和傳址的區(qū)別 傳值和傳址的區(qū)別?
傳值和傳址的區(qū)別?傳值ByVal是將數值傳給形參我以一個例子講解Function add(Byval a as integer,Byval b As integer)Dim c As Integera
傳值和傳址的區(qū)別?
傳值ByVal是將數值傳給形參我以一個例子講解Function add(Byval a as integer,Byval b As integer)Dim c As Integera=a 1b=b 1c=a badd=cEnd Function上面的是傳值,也就是當調用的時候,例如Add(a,b)這里實際上是等同于Add(a值,b值)如:aa=12:bb=3調用Add(aa,bb)時,系統(tǒng)會把數值12和3傳給函數“Add”結果是aa,bb原值未變但是傳址不一樣同樣的功能,我把它改成傳址時的模式:Function add(ByRef a as integer,ByRef b As integer)Dim c As Integera=a 1b=b 1c=a badd=cEnd Function這個時候,如果執(zhí)行下面的程序段:aa=12:bb=3Add(aa,bb)Print aa & " " & bb你會發(fā)現他們的值變了因為傳值的時候是將數據給函數,這樣函數無法對aa,bb這種數據進行修改形象一點:你去查分,別人把分數讀出來給你聽,就相當于傳值 別人把分數表給你看,(這個時候你可以讀取分數,也可以改分數)就是傳址。這就是為什么查分的時候都是給你的數值,而不是把你放進教育局自己查檔案,嘿嘿希望對你有幫助打這么多字好累,給分吧,嘿嘿
參數傳遞的“傳值”和“傳址”有什么區(qū)別?
傳址對原來的屬性也沒有影響,因為原來的屬性也只是一個地址。傳值一點影響都沒有。如果在方法中對這個地址中的對象進行了修改,原屬性根據同樣的地址找到這個對象是已經在方法中被改過了的對象,才提現為形參影響了實參