Download presentation
Presentation is loading. Please wait.
1
程式語言Visual Basic 傳址與傳值
黃瀧輝 老師 Long Hwai,Huang
2
壹.1 傳址與傳值 這兩種是在使用副程式時的資料(又稱為參數或引數)的傳遞方式,適用在Sub及Function類型。
傳址:顧名思義可知,主要是傳遞該參數資料的記憶體位址(Address)。 傳值:顧名思義可知,主要是傳遞該參數資料的內容(Value)。
3
壹.2 變數 100 變數宣告,即向電腦要一塊記憶體空間來儲存資料,且其中的內容可以隨著程式的執行而改變。 關於變數可以區分為:
(1) 變數所佔用的記憶體空間編號,Address。其編號是固定的。 100 10110 (2) 變數在記憶體中所儲存的值(Value,內容),其內容是可變的,一般也是使用二進制來表示。
4
貳.1 傳址方式的意義 傳址:Call by Address或Call by Reference,即傳遞該參數的記憶體位址到副程式的引數去,此時呼叫者與副程式的引數使用同一塊記憶體空間。 使用方式:主程式呼叫敘述的引數未加小括號,或副程式的引數前加上ByRef。
5
貳.2 傳址的說明 Sub A (X , ByRef Y) … End Sub Sub Form_Activate()
Call A(B , C) ‘B和X使用同一記憶體空間 ‘C和Y使用同一記憶體空間
6
貳.3 傳址的例子 Sub TEST (X , Y , ByRef Z) X = X ^ 2 : Y = Y ^ 2 : Z = X + Y
End Sub Sub Form_Activate() A = 1 : B = 2 : C = 0 Call TEST(A , B , C) Print A ; B ; C 列印結果: 1 4 5
7
參.1 傳值方式的意義 傳值:Call by Value,傳遞記憶體中的資料到副程式去執行,不共用記憶體空間,故在副程式執行完的結果不會影響到主程式呼叫者。 使用方式:主程式呼叫敘述的引數加上小括號,或副程式的引數前加上ByVal。若主程式呼叫敘述的引數是一個常數或運算式,則屬於傳值呼叫。
8
參.2 傳值的說明 Sub A (X , ByVal Y) … End Sub Sub Form_Activate()
Call A((B) , C) ‘B和X不共用記憶體空間 ‘C和Y不共用記憶體空間
9
參.3 傳值的例子 Sub TEST (X , Y , Z , ByVal W)
X = X ^ 2 : Y = Y ^ 2 : Z = X + Y : W = X - Y End Sub Sub Form_Activate() A = 1 : B = 2 : C = 0 : D = 0 Call TEST((A) , (B) , C , D) Print A ; B ; C ; D 列印結果:
Similar presentations