VB FUNCTION过程问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:00:22
7. 下列过程定义正确的是__________。
a. Function a(ByVal b!) As Double
b. Sub a(ByVal b!) As Double
c. Function a(ByRef a!) As Double
d. Function a(ByRef b!(5)) As Double

答案选A 为什么?解释一下

1.SUB和FUNCTION有什么区别
2.ByVal和ByRef是按值传送和按地址传送,通俗地解释一下
3.D括号中的5是什么意思

PS 我是初学者 = =!恩

1.SUB没有返回值,FUNCTION有也可以没有
2.通过ByRef传递进来的变量,可以被过程直接修改其值
3.括号中的5是试图定义一个大小为6的数组作为参数,是不正确的写法。

B.Sub不能有返回值
C.函数和里面的参数同名
D.作为参数不能规定b!的大小,可以定义成Function a(ByRef b!()) As Double

1:Sub过程不会返回结果,只是执行一定的代码;而Function则需要返回结果所以B很显然错了,他返回了一个Double类型的数据。
2:Byval是传值传送,实际上在内存中调用该值的时候会复制一份该值,并将复制的值参与运算,原来的值无影响,Byref传址直接访问参数的内存地址,会改变该值。
3:d很显然是错的,没有这样定义的,而且这里需要的是形参,不能用实参。

7. 下列过程定义正确的是___A____。
a. Function a(ByVal b!) As Double 正确
b. Sub a(ByVal b!) As Double 因为过程不能定义返回值
c. Function a(ByRef a!) As Double 因为函数名和参数名重名
d. Function a(ByRef b!(5)) As Double 参数不能是数组

1.SUB和FUNCTION有什么区别
Sub 是一个过程,用于调用一些代码,没有返回值(可以提供一些参数)
Function 是一个函数,可以调用一些代码来返回结果(可以提供一些参数)

2.ByVal和ByRef是按值传送和按地址传送,通俗地解释一下
按值传送指将变量的内容制作一个复制品给它(过程/函数),它怎么修改原来的变量的值都不变。
按地址传送是指将变量所在的位置(内存地址)告诉它(过程/函数),它可以自己去获取和修改,如果修改了,原来的值改变(都存储在一个位置)。

3.D括号中的5是什么意思
是指定义一个5维的变量数组,每个维都是一个变量,可以更方便的存储类似的一组变量
变量数组最低维是