VB6中动态数组的声明

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:07:47
这是本人学习VB中的理解,也是学习动态数组声明的学习笔记一则吧,这里可以给不明白的看到或许能有帮忙,给高手看到,就希望能帮忙指点。赏钱不多,希望笑纳。
Private Sub Command1_Click()
Dim a() As Integer '声明动态数组
Show
ReDim a(800) '重新定义数组的上界,这里有801个元素,占较大的内存空间
k = 0 '┐
For x = 200 To 600 Step 3 '│这里的循环语句是为了找出有用的原数组中我们想要的数据
If x Mod 8 = 0 Then '│(凡是在200到600内满足x mod 8 =0的数据都是我们需要的
k = k + 1 '│数据,也是说数组中的801个数据并非都是我们要的,其它的
a(k) = x '│数据则变成多余的,存在只有浪费内存空间。)
End If '│并将有用的数据赋值给a(k)中
Next x '┘
ReDim Preserve a(k) '┐由于上一个循环中挑选出的有效数据的元素个数大大的减小,
For i = 1 To k '│为了节省内存空间,在这里重新给a()动态数组重新定义上界,
Print a(i) '│这样,内存中多余的无用数据则已经放弃,有用的数据给予保
Next i '┘留。
End Sub

上面的一则程序是网上所得,如果有版权的问题,请包涵。本人在学习过程中没有明师的指点,每理解一段小程序都要花费很大的精力,如果有更好的理解方

呵呵.我一般使用动态数组都是使用Preserve即时定义
Private Sub Form_Click()
Dim a() As Integer '声明动态数组
Show
ReDim a(0) '初始化
For x = 200 To 600 Step 3 '│这里的循环语句是为了找出有用的原数组中我们想要的数据
If x Mod 8 = 0 Then '│(凡是在200到600内满足x mod 8 =0的数据都是我们需要的
'│数据,也是说数组中的801个数据并非都是我们要的,其它的
ReDim Preserve a(UBound(a) + 1) '我就喜欢这样,即时定义,不需要就不定义
a(UBound(a)) = x '│数据则变成多余的,存在只有浪费内存空间。)
End If '│并将有用的数据赋值给a(k)中
Next x '┘

End Sub