新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 开发语言 > VB教程 > 正文:VB函数中两种参数的区别

VB函数中两种参数的区别

新客网 XKER.COM 2007-02-01 来源: 收藏本文
在各种编程语言中调用函数或过程时,都需要使用参数。VB中使用的参数比较特殊,有两种类型:引用参数和传值参数。正确理解这两种参数对实际编程工作会有很大帮助。
在函数或过程中使用一个参数时,仅使用其值而不能改变其初值,这样的参数称为传值参数,而在使用中初值可以被改变的参数则称为引用参数。在函数或过程中对于引用参数使用的是它本身,某些操作可能会改变参数原来的值;而对于传值参数,则可以理解为操作的是它在另一个地址存储的一个复制品,尽管这个复制品的值可能发生变动,却不会影响传值参数自身。
下面通过一个例子来说明这两种参数的区别:
1、在某窗体的通用说明区中编写一个自定义函数Dou—ble 如下:
Function Double (A As Inte—ger)A=8Double =2*AEnd Function这是一个非常简单的求一个数的两倍的函数,其中参数A 定义为整型,是引用参数。
2、在窗体中放置一个按钮command1,编写command1_click()过程如下:
Private Sub command1_click()Di m A As IntegerDi m B As IntegerA=6B=Double(A)Print "A="+Str$(A)Print "B="+Str$(B)End Sub
在本过程中将A 赋初值6,以A 为参数调用函数Double ,返回值保存在B中。运行程序,结果为:
A=8B=16
从运行结果可以看出,虽然在过程command1_click()中给A 赋初值6,但在语句B=Double (A)调用函数Double 后,Double 函数中又给A 重新赋了值(A=8),从而影响函数的返回值,引用参数A 的初值也被改变。
如果将Double 函数的参数说明项改为(By Val AAs Integer),用By Val 将A说明为传值参数,再运行程序,结果为:A=6B=16
这是由于使用By Val 将A 定义为传值参数,在调用Double 函数时,只是将A 的值传给该函数使用,尽管函数中对A 重新赋了值,但只是对A 的复制品进行操作并影响到函数的返回值,却并不涉及command1_click()过程中的A 本身,因此输出的结果中A 的初值仍为6。

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐