参数传递

这个知识点当初第一次接触vb的时候就不懂,现在回过头来仔细看看,把它放在过程函数中使用反而将它掌握了也记在过程这张网中了,不会轻易忘记了。
在介绍参数传递之前,先说说过程,所谓的过程就是为了完成一个特定的任务,由一组独立的程序代码组成。它分为事件过程和通用过程,过程的声明和函数的声明见链接(变量的作用域和生命期),过程的调用用call语句,提到过程就要提到函数函数和过程的区别就是函数有返回值而过程没有返回值。当然调用的时候就可以是两种方法了(一种是直接使用函数名就是用“被赋值对象=函数名(参数列表)或函数名 参数列表;另一种是call函数名(参数列表))

实参:定义过程中的参数表是形式参数列表

形参:调用过程的参数是实际参数。

理解这两个概念之后我们就能明白参数传递的目的和作用了--通过实际参数和形式参数的传递可以实现调用过程和别调用过程之间的信息进行交换。

vb中参数传递有两种形式即传值(byval)和传址(byref)(缺省的情况下是传址)
传值:
顾名思义,当然是按照值来传递,具体的是在过程被调用的时候,传递给形参的是调用过程中的相应实参值,因为形参和实参各自占有不同位置的存储空间,被调用过程在执行中,改变了形参变量的值,但不会影响调用过程中的实参值,也就是实参和通用过程体内的运算无关

传址:
就是当一个过程被调用时,是把是把实参变量的内存地址传递给被调用过程的形参,也就是形参和实参使用相同地址的内存单元,因此当在被调用过程中改变形参的值时,就等于改变了实参的值。

通过这两种参数传递,我们能明白传址就是实参和形参共用了内存空间,所以实参值就改变了,而传值就没有所以实参没有改变。这让我想起了dim和static定义变量的时候,dim是当变量所在的过程执行完毕时候,变量占用的内存就释放了,所以变量的值也就不存在了,而static定义的时候,变量的内存不释放,变量的值一直被保存,在一次执行这个过程时候,变量仍然可用。

虽然这两个知识点联系的不是很紧,但是我能将这个道理拿到生活中,那个内存空间就像是一种信念,而实参值就是现实中的成功。如果信念没有了,成功自然也就不存在了。这样去记忆,如果我想到了信念和成功一定会想到这两个知识点也一定能明白dim和static、传址和传值的区别与联系。很好,抱抱自己···鼓励一下。哈哈

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...