作者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