傳值和傳址的區(qū)別 傳值和傳址的區(qū)別?
傳值和傳址的區(qū)別?傳值ByVal是將數(shù)值傳給形參我以一個例子講解Function add(Byval a as integer,Byval b As integer)Dim c As Integera
傳值和傳址的區(qū)別?
傳值ByVal是將數(shù)值傳給形參我以一個例子講解Function add(Byval a as integer,Byval b As integer)Dim c As Integera=a 1b=b 1c=a badd=cEnd Function上面的是傳值,也就是當調(diào)用的時候,例如Add(a,b)這里實際上是等同于Add(a值,b值)如:aa=12:bb=3調(diào)用Add(aa,bb)時,系統(tǒng)會把數(shù)值12和3傳給函數(shù)“Add”結(jié)果是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ā)現(xiàn)他們的值變了因為傳值的時候是將數(shù)據(jù)給函數(shù),這樣函數(shù)無法對aa,bb這種數(shù)據(jù)進行修改形象一點:你去查分,別人把分數(shù)讀出來給你聽,就相當于傳值 別人把分數(shù)表給你看,(這個時候你可以讀取分數(shù),也可以改分數(shù))就是傳址。這就是為什么查分的時候都是給你的數(shù)值,而不是把你放進教育局自己查檔案,嘿嘿希望對你有幫助打這么多字好累,給分吧,嘿嘿
參數(shù)傳遞的“傳值”和“傳址”有什么區(qū)別?
傳址對原來的屬性也沒有影響,因為原來的屬性也只是一個地址。傳值一點影響都沒有。如果在方法中對這個地址中的對象進行了修改,原屬性根據(jù)同樣的地址找到這個對象是已經(jīng)在方法中被改過了的對象,才提現(xiàn)為形參影響了實參