7.2.2动态数组的定义 1. 定义动态数组分以下两步进行: 1)在模块级或过程级定义一个没有下标的数 第七章 组: PublicPrivate Dim数组名OAs类型],. 例:DimG0 As Integer 数 2)在过程级使用ReDim语句定义数组的实际 大小 组 ReDim [Preserve数组名(维数定义) [As类型],. 例:ReDim G(1Tol00)As Integer ReDim Preserve G(1 To 100)As Integer
第 七 章 数 组 16 1. 定义动态数组分以下两步进行: 1) 在模块级或过程级定义一个没有下标的数 组 : Public|Private|Dim 数组名()[As 类型],. 例:Dim G() As Integer 2) 在过程级使用ReDim语句定义数组的实际 大小 ReDim [Preserve] 数组名(维数定义) [As 类型],. 例: ReDim G(1 To 100) As Integer ReDim Preserve G(1 To 100) As Integer 7.2.2 动态数组的定义
2.说明 > ReDim语句只能出现在过程中。 > 维数定义:常包含具有明确值的变量或表 第七章 达式。 >1 可以用ReDim反复改变数组元素及维数的 数目。 数 > 若用步骤1定义了类型,则不许用步骤2改 组 变类型。 193 17
第 七 章 数 组 17 2. 说明 ➢ ReDim语句只能出现在过程中。 ➢ 维数定义:常包含具有明确值的变量或表 达式。 ➢ 可以用ReDim反复改变数组元素及维数的 数目。 ➢ 若用步骤1定义了类型,则不许用步骤2改 变类型
>每次执行ReDimi语句时,如果不使用Preserve关 键字,当前存储在数组中的值会全部丢失。 Visual Basic重新对数组元素进行初始化,如将 第七章 数值型数组元素值置为0,将可变长度字符串类 型数组元素值置为零长度字符串。 >Preserve为可选的关键字。有时,希望改变数组 数 的大小又不丢失数组中原有的数据,使用带 Preserve关键字的ReDim语句就可以做到这一点。 组 使用Preserve关键字的Redimi语句只能改变多维 数组中最后一维的上界,且不能改变维数的数 目。如果改变了其他维或最后一维的下界,那 么运行时就会出错。 18
第 七 章 数 组 18 ➢每次执行ReDim语句时,如果不使用Preserve关 键字,当前存储在数组中的值会全部丢失。 Visual Basic重新对数组元素进行初始化,如将 数值型数组元素值置为0,将可变长度字符串类 型数组元素值置为零长度字符串。 ➢Preserve为可选的关键字。有时,希望改变数组 的大小又不丢失数组中原有的数据,使用带 Preserve关键字的ReDim语句就可以做到这一点。 使用Preserve关键字的Redim语句只能改变多维 数组中最后一维的上界,且不能改变维数的数 目。如果改变了其他维或最后一维的下界,那 么运行时就会出错
例:Dim A(As Integer Private Sub Command1 ClickO N=4 ReDim A(N) 第七章 For I=0To N A(①)=1:Print A(①; Next I 数 Print N=8 组 ReDim A(N) For I=0 To N Print A(①; 运行时输出结果为: Next I 11111 End Sub 00000000 193
第 七 章 数 组 19 例: Dim A() As Integer Private Sub Command1_Click() N = 4 ReDim A(N) For I = 0 To N A(I) = 1: Print A(I); Next I Print N = 8 ReDim A(N) For I = 0 To N Print A(I); Next I End Sub 运行时输出结果为: 1 1 1 1 1 0 0 0 0 0 0 0 0
例: Dim A(As Integer Private Sub Command1 ClickO N=4 ReDim A(N) 第七章 For I=0 To N A()=1:Print A(①; Next I 数 Print N=8 组 ReDim Preserve A(N) For I=0To N Print A(①; 运行时输出结果为: 11111 Next I 111110000 End Sub 20
第 七 章 数 组 20 例: Dim A() As Integer Private Sub Command1_Click() N = 4 ReDim A(N) For I = 0 To N A(I) = 1: Print A(I); Next I Print N = 8 ReDim Preserve A(N) For I = 0 To N Print A(I); Next I End Sub 运行时输出结果为: 1 1 1 1 1 1 1 1 1 1 0 0 0 0