Re: [vb2008] 請教一題呼叫函數程式題
用推文太難回了
只好暫用板面回了~
※ 引述《stator (別急著吃棉花糖)》之銘言:
: Private Sub Form_Activate( )
: DIM X as Integer
: X=3
: Call F1(X)
: Debug.Print(X)
: End Sub
: Sub F1( ByRef X As Integer )
^^^^^
這邊用了 ByRef
: Call T2 ( X=X+X , X , X )
^^^^^
x=x+x ,這邊變成判斷句了哦!。 (A>B A=B的問題)
也就是變成只有布林的 true 跟 false
但這二個又可以轉換成 -1 跟 0
所以傳到第一個t2時,是傳false 經由 Integer 轉換成 0
(其實這邊我也覺得怪怪的...為什麼我的印象中true=1才對? 還是那是C?)
(剛試了一下 VB2008 true=-1 VBA(excel) 也是true=-1)
: End Sub
: Sub T2(ByRef A As Integer ,ByVal B As Integer , ByRef C As Integer )
^^^^^ 0 ^^^^^ 3 ^^^^^ 3
A = A + 1 (0+1 所以a=1
B = B + 2 (3+2 b=5
C = A + B * C (1+ 5*3 所以C變成16
但C是Byref所以會影響F1的X值,同樣地
F1的X值,也是BYREF,所以也會影響 Activate時的X值
最後debug就變成 16了
(建議可以變成各個副程式 是byref 還是byval
: End Sub
: 執行結果為16,請問16要怎麼算呢??
: 一開始呼叫F1函數,再呼叫T2,其中X=X+X會傳什麼值過去給T2呢?謝謝各位前輩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.197.87
※ 編輯: sueadolph 來自: 140.118.197.87 (06/26 19:13)
推
06/27 06:44, , 1F
06/27 06:44, 1F
推
06/27 07:44, , 2F
06/27 07:44, 2F
→
06/27 10:28, , 3F
06/27 10:28, 3F
推
06/27 11:28, , 4F
06/27 11:28, 4F
推
06/28 04:34, , 5F
06/28 04:34, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):