参数传递是什么?参数传递的是什么?

目录

过程是什么?

什么是参数的传递?

如果传递参数数据类型不匹配会怎么样?

参数传递传的是什么?

按地址传递(ByVal)

按地址传递(ByRef,默认)


 

过程是什么?

执行一段相同的程序代码


有哪些过程?

Sub

Function

子程序

函数

Call语句调用

Call语句调用

没有返回值

有返回值


为什么要使用过程呢?有哪些好处?

避免代码冗长,防止代码的仿佛书写。前面的博客中有说明,这里不做过多赘述


Sub过程和Function过程分别的语法格式是怎样的?

[Private|Public][Static] Sub <过程名> ([参数表])

          过程体

          [Exit Sub]

End Sub

[Private|Public|Static] Function 函数名([参数表] [AS类型])

      [函数体]

      [<函数名>=<表达式>]

      [Exit Function]

End Function

说明:

过程必须遵守“先说明,后调用”的原则,声明过程就是编写一个能够实现预期功能的程序段,可被重复调用。

过程名的命名规则与变量相同,过程名必须唯一,不得超过255个字符

参数表是用来指明调用该Sub过程时需要传递给该过程的参数及类型,参数表内的参数又称形式参数(简称形参)。可以没有形参,也可以有一个或多个形参。

形参的的命名规则与变量相同,形参具有数据类型,如果省略“AS 类型”不说明类型,默认为Variant型

形参本身是一个名字,它是不占用内存空间的,只有在被函数调用了之后才参与运算、赋值,占用内存空间

函数参数表中的参数,叫形参,调用函数时给的值,叫实参


 

什么是参数的传递?

调用过程时实参将参数值传递给相应的形参,然后在过程中实现对数据处理和返回结果的过程


参数传递有哪些规则呢?

个数相等、数据类型相容、顺序一致


如果传递参数数据类型不匹配会怎么样?

举例:如下代码中

当程序运行时就会报错:

原因:实参和形参的数据类型不匹配,

说明:再定义的max过程中,形参m、n对应的为Integer(整型)的数据类型,他的范围是正整数、负整数或者0,

而在调用max这个过程中,实参d、c在定义时的数据类型为Single(单精度型),范围为带有小数的实数,

它们数据类型包含的范围不同,就好比,我要装一个大西瓜,你却给我一个小碗,那个小碗能放的下一个大西瓜吗?答案绝对是不可以的。


参数传递传的是什么?

可以传常量、变量、表达式计算的结果、数组。这就和接下来要讲的的传递方式有关了


有哪几种传递方式?

按地址传递(ByVal

当调用时,系统将实参的值送给形参,形参接收到了值之后就断开了联系。在过程体内对形参的任何操作不会影响到实参

如:我有一本书,通过小明借给了小李,小李实际拿到的是我书的复印本,不管小李怎么修改这本书,对我都是没有影响的

实例:

执行结果如图:


按地址传递(ByRef,默认)

当调用时,将实参的地址传递给形参,实参和形参共享存储单元,在过程体中对形参的任何操作都变成了相应实参的操作

如:实参有一本书,把这本书给了形参,给的不是复印件,而是装这本书的房间钥匙,实参和形参都可以共享它,因为它们都有储存这本书的钥匙,有地址可以使用它,形参拿到这本书可以随意修改,修的就是原稿

实例:

'''''''''''''''''
'输出X的值

Private Sub Command1_Click()
    Dim x As Integer
    x = 6
    Call test(x)
    Print "    sub   ̺ x="; x
End Sub



Sub test(ByRef m As Integer)
    m = m + 5
End Sub

猜你喜欢

转载自blog.csdn.net/weixin_43319713/article/details/106116690
今日推荐