作者stator (別急著吃棉花糖)
看板Visual_Basic
標題[vb2008] 請教一題程式題
時間Sat Jun 26 15:16:40 2010
Private Sub Form_Activate( )
DIM X as Integer
X=3
Call F1(X)
Debug.Print(X)
End Sub
Sub F1( ByRef X As Integer )
Call T2 ( X=X+X , X , X )
End Sub
Sub T2(ByRef A As Integer ,ByVal B As Integer , ByRef C As Integer )
A = A + 1 : B = B + 2 : C = A + B * C
End Sub
執行結果為16,請問16要怎麼算呢??
一開始呼叫F1函數,再呼叫T2,其中X=X+X會傳什麼值過去給T2呢?謝謝各位前輩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.171.167
1F:→ apple:善用F8,它會給你解答的.... 06/26 15:52
2F:→ MOONRAKER:祗W您了,我這週也很煩,不過沒人來鬥爭我,倒是不錯 06/26 16:22
3F:→ stator:請教一樓a大,我有試過,只是為什麼在T2,A的值為1呢? 06/26 16:35
4F:→ stator:因為運算式傳過去是沒有意義的值嗎? 06/26 16:36
5F:→ apple:其實呢...我也想知道( ̄□ ̄|||)a 06/26 17:02
6F:推 horngsh:即使用是byref, 如果傳運算式, 仍然被視為ByVal,希望沒說 06/26 17:09
7F:→ horngsh:錯 06/26 17:09
8F:→ stator:謝謝h大 06/26 17:14
9F:→ apple:但實際上傳過去的是0...如用x=x,則傳-1...why? 06/26 17:23
10F:→ MOONRAKER:天啊…現在才看到上面推錯了… 06/26 21:26
11F:→ stator:我也不懂,為什麼會是-1~ 06/27 10:25
12F:→ stator:樓下的S大已經解了。謝謝 06/27 10:28