VB中过程调用时有几种参数传递方式,说明其区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中过程调用时有几种参数传递方式,说明其区别相关的知识,希望对你有一定的参考价值。
参考技术A 有三个(1)按值传递
这种传递方式只能将实参的值传递给形参,而不能将运算后形参的值再传递给实参,即这种传递只能是单向的,既使形参的值发生了改变,此值也不会影响到调用然后将该值传递给对应的形参。如果实在参数是常量或表达式,则默认采用的是值传递,在传递时先计算表达式的值,然后将该值传递给对应的形参。
(2)按地址传递
这种传递方式不是将实在的参数的值传递给形参,而是将存放实在参数值的内存中的存储单元的地址传递给形参,因此形参和实参具有相同的存储单元地址,也就是说,形参和实参共用同一存储单元。在调用SUB过程或FUNCTION过程时,如果形参的值发生了改变,那么对应的实参的值也将随着改变,并且实参会将改变后的值带回调用该过的程序,即这种传递是双向的。如果实在参数是变量,则默认采用按地址传递。
(3)命名传递
前面讲的按值传递和按地址传递,是按照形参和实参在参数表中的位置一一对应传递的。有时我们在调用过程语句的实在参数表中所写的实在参数和在过程定义语句的形式参数表中所写的形式参数位置并不一一对应,这时就需要使用命名传递。
使用命名传递,在调用过程语句的实在参数表中的参数格式为:
<形式参数>:=<实在参数>
其含义为:将右边实在参数的值传递给左边的形式参数。
VB.sub过程和function过程的区别
function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有
function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。
Sub 过程与Function 过程的区别:
- Sub 过程定义时无需定义返回值类型
- Function 过程一般需要用“As 数据类型” 定义函数返回值类型。
VB有两大类过程——事件过程和通用过程;
通用过程又分:
- 函数过程(Function过程)又称自定义函数过程、
- 子过程(Sub过程)
在表达式中调用时一定要用函数过程,否则一般用子过程
function 可以用自身名字返回一个值,自带的函数功能是一样的 例如:inputbox
sub 需定义别的变量,用传址方式传回值。例如:msgbox
Sub 过程与Function 过程的区别:
1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” as子句决定函数过程返回值
的 类型,如果忽略As子句,则函数过程的类型为变体型
2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。
3. 调用过程:调用 Sub 过程与 Function 过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只
是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,
Sub 过程也可以修改传递给它们的任何变量的值。
4. 调用 Sub 过程有两种方法:
以下两个语句都调用了名为 MyProc 的 Sub 过程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号
3. 调用过程:调用 Sub 过程与 Function 过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只
是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,
Sub 过程也可以修改传递给它们的任何变量的值。
4. 调用 Sub 过程有两种方法:
以下两个语句都调用了名为 MyProc 的 Sub 过程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号
以上是关于VB中过程调用时有几种参数传递方式,说明其区别的主要内容,如果未能解决你的问题,请参考以下文章