·计算机二级C语言典型
·C语言之指针、数组和
·深入理解C语言指针的
·计算机等级考试推荐
·计算机C语言入门讲座
·计算机二级C语言典型
·计算机二级C语言典型
·VB参数传递方式判别

VB参数传递方式判别与解题应用

   

  VB过程中使用的参数分为实参和形参,简单的讲,在过程定义中给定的参数是形参,而在过程调用语句中给定的参数是实参。当调用一个有参数的过程时,形参和实参逐一匹配传递,根据传递方式不同,可分为按值和按地址两种。对参数传递方式的正确判别是过程学习中的一个难点,也是等级考试中的一个考点。

一、            按值与按地址方式的内涵

       按值传递参数,实质上是将实参的值复制一份给形参,因此形参获得的是实参的副本,当过程执行中对形参进行改变,并不会影响实参本身;按地址传递参数,实质上是将实参变量的地址传递给形参,因此形参与实参将指向同一内存单元,当过程执行中形参发生改变时,对应实参也将跟着改变。

二、            参数传递方式判别方法

      
  
判断参数传递方式,不能单纯的看过程定义中形参前的修饰限定词有无ByVal。参数传递到底采用何种方式,不仅取决于过程定义,还取决于过程调用,即与对应实参的具体形式也有很大关系。因此,应该从以下三个方面综合考虑:

1.       形参是否为数组或者控件

2.       形参前是否有ByVal修饰

3.       对应实参是否为表达式或者值

  具体判别方法,请见如下判别流程图。

过程参数传递方式判别

  三、不同传递方式对参数类型的要求


  若参数按地址传递,则
VB要求实参的数据类型与形参的数据类型完全一致;若参数按值传递,则实参数据类型不要求与形参完全一致,但是必须能够由VB默认转化。


四、解题应用


  (一) 
以江苏省计算机等级考试2001年春季的一道考题为例:


  在应用程序中用“
Private Function Fun(X As Integer, Y As Single)”定义了函数Fun. 调用函数Fun的过程中的变量I,J均定义为 Integer,能正确引用函数Fun的是____

Fun(I,J)                           Call Fun(I,3.65)

Fun(3.14,234)                  Fun(“245”, “231.5”)

A.①③          B.②③④                     C.①②③                     D.①②③④


  分析:


  1.      
根据判别流程图,对每个引用做如下判断:


  对于①
Fun(I,J),实参I与形参X匹配,由于形参X不是数组并且无ByVal修饰,而实参I为变量,不是值或表达式,因此该参数将按照地址传递;同理,可以推断实参J与形参Y也将按照地址传递。根据VB要求,按照地址传递的实参和形参数据类型必须完全一致,而根据题意,JIntegerYSingle,因此①不正确;
对于②Call Fun(I,3.65)IX按地址传递;而实参3.65为值,与形参Y匹配时,将按值传递,因此②正确;对于③Fun(3.14,234),虽然实参3.14对应的形参XInteger,实参234对应的形参YSingle,但由于它们都是按照值传递,因此3.14将转化为3,而234可以直接赋给Y,因此③正确;对于④Fun(“245”, “231.5”),由于实参245”231.5”均为字符串值,因此其与对应形参X

本新闻共2页,当前在第1页  1  2  


来源:中国IT认证实验室   点击:
发布日期:2006-5-21 22:30:00