|
VB过程中使用的参数分为实参和形参,简单的讲,在过程定义中给定的参数是形参,而在过程调用语句中给定的参数是实参。当调用一个有参数的过程时,形参和实参逐一匹配传递,根据传递方式不同,可分为按值和按地址两种。对参数传递方式的正确判别是过程学习中的一个难点,也是等级考试中的一个考点。 一、 按值与按地址方式的内涵 按值传递参数,实质上是将实参的值复制一份给形参,因此形参获得的是实参的副本,当过程执行中对形参进行改变,并不会影响实参本身;按地址传递参数,实质上是将实参变量的地址传递给形参,因此形参与实参将指向同一内存单元,当过程执行中形参发生改变时,对应实参也将跟着改变。 二、 参数传递方式判别方法 1. 形参是否为数组或者控件 2. 形参前是否有ByVal修饰 3. 对应实参是否为表达式或者值 具体判别方法,请见如下判别流程图。 三、不同传递方式对参数类型的要求
①Fun(I,J) ②Call Fun(I,3.65) ③Fun(3.14,234) ④Fun(“ A.①③ B.②③④ C.①②③ D.①②③④
A.Call Convent((X)) B.Call Convent(X*1) C.Convent(X) D.Convent X
Dim x As Integer, y As Integer, z As Integer x = 1: y = 2: z = 3 Call sub1(x, y, y) Print x,y,z End Sub Private Sub sub1(x As Integer, y As Integer, ByVal z As Integer) Dim I As Integer x = 3 * z: y = 2 * z: z = x + y Print x, y, z End Sub 分析: 根据判别流程图知,第一、二参数按地址传递,第三参数按值传递。因此第一、二形参与对应实参指向同一内存单元,而第三形参与对应实参值相同,但却指向不同内存单元。因此,可以作出如下参数传递与过程调用示意图。
虽然实参和形参均为x、y、z,但是请注意区分,它们具有不同的作用域。 经分析,最后答案为: 6 4 10 6 4 3
| |
| 没有相关文章 |
| 文章评论 | |||