数组名2=数组名1
我们就此形式作讨论:这里的数组名2,实际上在前面的数组声明时,只能声明为Variant的变量,赋值后的数组2的大小、维数、类型同数组名1;否则,若声明成动态或静态的数组,例如:
Dim数组名2()或Dim数组名2 (下标)
程序在运行到上述赋值语句时显示"不能给数组赋值"的出错信息 。
所以,为了程序的安全、可靠,建议读者还是忍痛割爱,少用VB6.0的这一新功能,使用传统的循环结构来给数组赋值 。基于此原因,我们也就在教程中不作展开 。
五、过程中常见错误和注意事项
1.程序设计算法问题
该章程序编写难度较大,主要是算法的构思有困难,这也是程序设计中最难学习的阶段 。经验告诉每一位程序设计的初学者,没有捷径可走,多看、多练、知难而进 。上机前一定要先编写好程序,仔细分析、检查,才能提高上机调试的效率 。每当一个程序通过艰苦的努力调试通过时,那苦尽甘来的喜悦令你一言难尽 。
2.确定自定义的过程是子过程还是函数过程
实际上过程是一个具有某种功能的独立程序单位,供多次调用 。子过程与函数过程的区别是前者子过程名无值,后者函数过程名有值 。若过程有一个返回值,则习惯使用函数过程;若过程无返回值,则使用子过程,若过程返回多个值,一般使用子过程,通过实参与形参的结合带回结果,当然也可通过函数过程名带回一个,其余结果通过实参与形参的结合带回 。
3.过程中形参的个数和传递方式的确定
对初学者,在定义过程时不能确定形参的个数和传递方式 。
过程中参数的作用是实现过程与调用者的数据通信 。一方面,调用者为子过程或函数过程提供初值,这是通过实参传递给形参实现的,另一方面,子过程或函数过程将结果传递给调用者,这是通过地址传递方式实现的,因此,决定形参的个数就是由上述两方面决定的 。对初学者,往往喜欢把过程体中用到的所有变量作为形参,这样就增加了调用者的负担和出错概率,也有的初学者全部省略了形参,则无法实现数据的传递,既不能从调用者得到初值,也无法将计算结果传递给调用者 。
VB中形参与实参的结合有传值和传地址两种方式 。区别如下:
(1)在定义形式上前者在形参前加即ByVal关键字 。
(2)在作用上值传递只能从外界向过程传入初值,但不能将结果传出,而地址传递既可传入又可传出 。
(3)如果实参是数组、自定义类型、对象变量等,形参只能是地址传递 。
4.实参与形参类型对应问题
在地址传递方式时,调用过程实参与形参类型要一致 。例如:
函数过程定义如下:
Public Function f!(x!)
f=x+x
End Function
主调程序如下:
Privme Sub Commandl_Click()
Dim y%
y=3
Print f(y)
End Sub
上例形参x是单精度型、实参y是整型,程序运行时会显示"ByRef参数类型不符"的编译出错信息 。
在值传递时,若是数值型,则实参按形参的类型将值传递给形参 。例如:
函数过程定义如下:
Public Function f!(ByVal x%)
f=x+x
End Function
主调程序如下:
Priva~SubCommandI_Click()
Dim y!
Y=3.4
Print f(y)
End Sub
程序运行后显示的结果是6 。
5.变量的作用域问题
局部变量,在对该过程调用时,分配该变量的存储空间,当过程调用结束,回收分配的存储空间,也就是调用一次,初始化一次,变量不保值,窗体级变量,当窗体装入,分配该变量的存储空间,直到该窗体从内存卸掉,才回收该变量分配的存储空间 。
推荐阅读
- 人生得意须尽欢莫使金樽空对月什么意思?人生得意须尽欢莫使金樽空对月下联
- 新疆高考招生网,新疆高考招生网上报名2023
- 少女妈妈贵州 海南少女妈妈村在哪里
- 杨梅放冰箱可以放多久
- 异地办理房产委托公证需要什么材料 购房委托公证需要什么材料
- 薄冰英语语法手册 薄冰英语语法怎么样
- 生命的本质是什么?生命的本质是
- 造价员取消了章还能用吗 造价员取消了吗
- 金陵科技学院怎么样?