![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
關于過程嵌套調用題目的分析 |
關于過程嵌套調用題目的分析——答wsxy網(wǎng)友的提問關鍵詞: 嵌套調用 曹蘇群 http:/caosuqun.bokee.com
問題提出: (wsxy) 分析如下題目運行結果: dim A as integer
答:
首先執(zhí)行:fun(A,B) A為1,B為2 由于實在參數(shù)是:A,B 對應形式參數(shù)是K,N,由于是按地址傳遞,因此A和K指向同一內存單元,B和N指向同一內存單元。 因此執(zhí)行deug.print K,N 輸出第一行:1 2 執(zhí)行k=N+A+K 即:k=2+1+1=4 注意此時A也變?yōu)?/SPAN>4; 執(zhí)行N=K+A+N 即:N=4+4+2=10 注意此時B也變?yōu)?/SPAN>10 執(zhí)行fun=K+N 即:fun=14 執(zhí)行 debug.print 輸出第二行:14
再執(zhí)行:fun(A,fun()) A為4,fun()為14 同上分析,執(zhí)行deug.print K,N 輸出第三行:4 14 執(zhí)行k=N+A+K 即:k=14+4+4=22 注意此時A也變?yōu)?/SPAN>22; 執(zhí)行N=K+A+N 即:N=22+22+14=58 執(zhí)行fun=K+N 即:fun=80 執(zhí)行 debug.print 輸出第四行:80
最后執(zhí)行:debug.print A,B,D 輸出第五行:22 10 80
|