vb6请前辈帮忙讲解动态数组初始化 此段代码的理解 谢谢!
本帖最后由 Kye 于 2015-12-28 16:17 编辑'http://zhidao.baidu.com/link?url=GsP_Dv75fFTYxZBhdlLL1SPCIjCq6lPqwy4Scq-DyX-htSK2YutP6G2tZWTBAsY8-wzXYcms9LEK7rJJT9QHhxl4iMs3FLVqFi52WwPN793
Private Sub Command2_Click()
Dim a() As String
Dim J1() As String
Dim i As Long
Dim n As Long
J1 = Split("ad|fg|af|ssww|wwww|w", "|")
'Print UBound(J1)
’ReDim a(2, UBound(J1))
For n = 0 To UBound(J1)
ReDim Preserve a(2, n) ' Preserve 保留动态数组原来的项,这里原来的项
' 是什么?似乎理解了,可能是For循环中产生的,之前的项需要保留
a(2, n) = J1(n)
Debug.Print a(2, n)
Next
Print UBound(a)'我实在不理解 为什么是 2,而不是5
'以下为测试数组内容
Dim Tmp As String
For i = 0 To UBound(J1)
Tmp = Tmp & a(2, i) & vbCrLf
Next
MsgBox Tmp
End Sub
ReDim Preserve a(2, n)
redim 改变数组所占内存的大小,意思是数据所占的空间(内存)变多,既然变多了,原来有数据的部分,就存在保留或不保留,所以有preserve
UBound(a) 默认是第一维的上界,所以是2
如果是UBound(a,2) ,你可以试试........
页:
[1]