关于过程嵌套调用题目的分析 |
关于过程嵌套调用题目的分析——答wsxy网友的提问关键词: 嵌套调用 曹苏群 http:/caosuqun.bokee.com
问题提出: (wsxy) 分析如下题目运行结果: dim A as integer
答:
首先执行:fun(A,B) A为1,B为2 由于实在参数是:A,B 对应形式参数是K,N,由于是按地址传递,因此A和K指向同一内存单元,B和N指向同一内存单元。 因此执行deug.print K,N 输出第一行:1 2 执行k=N+A+K 即:k=2+1+1=4 注意此时A也变为4; 执行N=K+A+N 即:N=4+4+2=10 注意此时B也变为10 执行fun=K+N 即:fun=14 执行 debug.print 输出第二行:14
再执行:fun(A,fun()) A为4,fun()为14 同上分析,执行deug.print K,N 输出第三行:4 14 执行k=N+A+K 即:k=14+4+4=22 注意此时A也变为22; 执行N=K+A+N 即:N=22+22+14=58 执行fun=K+N 即:fun=80 执行 debug.print 输出第四行:80
最后执行:debug.print A,B,D 输出第五行:22 10 80
|