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

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

过程是什么?


执行一段相同的程序代码


有哪些过程?


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型


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


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

什么是参数的传递?


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


参数传递有哪些规则呢?

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


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


举例:如下代码中


20200514114128678.png


当程序运行时就会报错:


20200514114128557.png


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


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


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


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


参数传递传的是什么?


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


有哪几种传递方式?


按地址传递(ByVal)


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


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


实例:


20200514114128642.png


执行结果如图:


20200514114128612.png


按地址传递(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


20200514114128619.png

相关文章
|
6月前
|
存储 Python 数据处理
Python 05 之函数【参数,返回值,嵌套调用,作用域,匿名函数】
Python 05 之函数【参数,返回值,嵌套调用,作用域,匿名函数】
73 0
|
JSON 前端开发 数据格式
四种常见的参数传递方式
四种参数传递方式
190 0
|
20天前
|
Shell
参数传递
【10月更文挑战第16天】
13 3
|
24天前
|
存储 JavaScript 前端开发
参数传递方法
参数传递方法
13 1
|
24天前
|
C#
C#的方法的参数传递
C#的方法的参数传递
12 0
|
5月前
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
43 2
|
6月前
|
存储 Python
Python函数参数传递
Python函数参数传递
60 1
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
59 0
|
JavaScript 前端开发
函数 定义,调用,传参,箭头函数、闭包
函数是一段可重复使用的代码块,可以接受参数(可选)并返回一个值(可选)。在JavaScript中,函数可以通过以下步骤进行定义、调用和传参。
|
Python
调用函数时,关于传参那些事~
调用函数时,关于传参那些事~
102 0