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

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

过程是什么?


执行一段相同的程序代码


有哪些过程?


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

相关文章
|
8月前
|
存储 Python 数据处理
Python 05 之函数【参数,返回值,嵌套调用,作用域,匿名函数】
Python 05 之函数【参数,返回值,嵌套调用,作用域,匿名函数】
78 0
|
前端开发
62 # 借用 promise 写成类的方法
62 # 借用 promise 写成类的方法
38 0
|
2月前
|
JavaScript 前端开发
如何在函数中使用解构赋值来处理具有默认值的函数的返回值?
在函数中使用解构赋值来处理具有默认值的函数的返回值,可以使代码更加简洁、清晰,并且能够更好地应对各种可能的返回情况,增强代码的健壮性和可维护性。
114 64
|
2月前
|
设计模式 Python
学习函数的参数传递和返回值
在编写函数时,不可避免地会出现一些错误。通过调试代码,查看参数的值在函数内部的变化以及返回值是否符合预期,有助于更好地理解参数传递和返回值的机制。
|
3月前
|
存储 JavaScript 前端开发
参数传递方法
参数传递方法
19 2
|
4月前
|
Python
示例说明闭包函数
示例说明闭包函数
20 0
Python函数:函数的定义和调用
本文详细介绍了Python函数的定义和调用方法,包括基本函数定义、参数传递、返回值、文档字符串、作用域、嵌套函数和闭包。通过一个综合详细的学生成绩管理系统的例子,我们展示了如何在实际编程中应用这些函数概念。希望本文对您理解和应用Python函数有所帮助。
|
6月前
|
语音技术
语音识别----函数基础定义联系案例,函数的参数,函数的参数练习案例,函数的返回值定义语法,函数返回值之None,函数的说明文档,函数的嵌套调用,变量在函数中的作用域,内部变量变全局变量用global
语音识别----函数基础定义联系案例,函数的参数,函数的参数练习案例,函数的返回值定义语法,函数返回值之None,函数的说明文档,函数的嵌套调用,变量在函数中的作用域,内部变量变全局变量用global
|
8月前
|
安全 C++
函数参数传递
函数参数传递
|
8月前
|
Python
Python函数的返回值深入解析
Python函数的返回值深入解析
99 1

热门文章

最新文章