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

看板Visual_Basic作者 (人..只剩下不信任)時間15年前 (2010/06/26 18:59), 編輯推噓4(401)
留言5則, 4人參與, 最新討論串2/2 (看更多)
用推文太難回了 只好暫用板面回了~ ※ 引述《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
謝謝s大~寫題目寫到這種還是第一次,沒遇過判斷句的
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
文章代碼(AID): #1C9Tshcn (Visual_Basic)
文章代碼(AID): #1C9Tshcn (Visual_Basic)