[vb2008] 請教一題呼叫函數程式題

看板Visual_Basic作者 (別急著吃棉花糖)時間15年前 (2010/06/26 15:16), 編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/2 (看更多)
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

06/26 15:52, , 1F
善用F8,它會給你解答的....
06/26 15:52, 1F

06/26 16:22, , 2F
祗W您了,我這週也很煩,不過沒人來鬥爭我,倒是不錯
06/26 16:22, 2F

06/26 16:35, , 3F
請教一樓a大,我有試過,只是為什麼在T2,A的值為1呢?
06/26 16:35, 3F

06/26 16:36, , 4F
因為運算式傳過去是沒有意義的值嗎?
06/26 16:36, 4F

06/26 17:02, , 5F
其實呢...我也想知道( ̄□ ̄|||)a
06/26 17:02, 5F

06/26 17:09, , 6F
即使用是byref, 如果傳運算式, 仍然被視為ByVal,希望沒說
06/26 17:09, 6F

06/26 17:09, , 7F
06/26 17:09, 7F

06/26 17:14, , 8F
謝謝h大
06/26 17:14, 8F

06/26 17:23, , 9F
但實際上傳過去的是0...如用x=x,則傳-1...why?
06/26 17:23, 9F

06/26 21:26, , 10F
天啊…現在才看到上面推錯了…
06/26 21:26, 10F

06/27 10:25, , 11F
我也不懂,為什麼會是-1~
06/27 10:25, 11F

06/27 10:28, , 12F
樓下的S大已經解了。謝謝
06/27 10:28, 12F
文章代碼(AID): #1C9QbRuf (Visual_Basic)
文章代碼(AID): #1C9QbRuf (Visual_Basic)