vb中这两种定义数组方式有什么区别?
比如optionbase1dimarr1()arr1=array(3,9,7,8)dimarr2(1to4)arr2(1)=3arr2(2)=9arr2(3)=7arr2...
比如
option base 1
dim arr1()
arr1=array(3,9,7,8)
dim arr2(1 to 4)
arr2(1)=3
arr2(2)=9
arr2(3)=7
arr2(4)=8
为什么不能如下方式定义呢?
dim arr3(1 to 4)
arr3=array(1,4,2,8)
我使用的是visual basic 6.0企业版 展开
option base 1
dim arr1()
arr1=array(3,9,7,8)
dim arr2(1 to 4)
arr2(1)=3
arr2(2)=9
arr2(3)=7
arr2(4)=8
为什么不能如下方式定义呢?
dim arr3(1 to 4)
arr3=array(1,4,2,8)
我使用的是visual basic 6.0企业版 展开
4个回答
展开全部
简单的说吧 就是dim 和 redim 的区别
如果我代码修改成这样 你就好理解了
dim arr3(1 to 4)
arr3=array(1,4,2,8,9,10)
arr3固定数组只能有4个元素 而array有6个参数 要返回6个元素的数组
dim arr3(1 to 4)
redim arr3(1 to 6)
这样肯定是不能执行的
同理在array内部是不判断arr3到底有几个元素的空间 能不能和参数的个数所匹配 它只看你是不是动态数组 能不能按array参数的个数来redim 然后给你赋值而已
如果我代码修改成这样 你就好理解了
dim arr3(1 to 4)
arr3=array(1,4,2,8,9,10)
arr3固定数组只能有4个元素 而array有6个参数 要返回6个元素的数组
dim arr3(1 to 4)
redim arr3(1 to 6)
这样肯定是不能执行的
同理在array内部是不判断arr3到底有几个元素的空间 能不能和参数的个数所匹配 它只看你是不是动态数组 能不能按array参数的个数来redim 然后给你赋值而已
更多追问追答
追问
dim arr3(1 to 4)
arr3=array(1,4,2,8)
这个我赋值的时候只有4个元素呀
追答
在array内部是不判断arr3到底有几个元素的空间 能不能和参数的个数所匹配 它只看你是不是动态数组 能不能按array参数的个数来redim 然后给你赋值而已
你的疑问就好像
dim arr3(1 to 4)
redim arr3(1 to 4)
这样
展开全部
因为arr3=array(1,4,2,8)已经明确定义
dim arr3(1 to 4)是变成多余的了
dim arr3(1 to 4)是变成多余的了
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组在使用之前必须先定义。
按数组占用存储空间的方式不同,分为两种数组:静态数组和动态数组。
静态数组的定义:Public|Private|Dim 数组名([下界1 To] 上界1,[下界2 To] 上界2,…) [As 类型],…
动态数组的定义:首先在模块级或过程级定义一个没有下标的数组 :
Public|Private|Dim 数组名()[As 类型],…
例:Dim A() As Integer
然后在过程级使用ReDim语句定义数组的实际大小:
ReDim [Preserve] 数组名([下界1 To] 上界1,[下界2 To] 上界2,…) [As 类型],…
例: ReDim A(1 To 10) As Integer
ReDim Preserve A(1 To 20) As Integer
在使用数组时,还可以通过数组操作函数完成一些操作。例如Array函数:Array(参数表)。:Array函数将其“参数表”的值构成数组的各元素值,并赋值给一个Variant类型的变量,注意只能赋值给Variant类型的变量,赋值后的数组大小由参数的个数决定,数组下标的下界由Option Base语句指定的下界决定。
例如:
Dim A
A = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
执行上述语句后数组A各元素值为:
A(0)=1,A(1)=2,A(2)=3,…,A(9)=10
按数组占用存储空间的方式不同,分为两种数组:静态数组和动态数组。
静态数组的定义:Public|Private|Dim 数组名([下界1 To] 上界1,[下界2 To] 上界2,…) [As 类型],…
动态数组的定义:首先在模块级或过程级定义一个没有下标的数组 :
Public|Private|Dim 数组名()[As 类型],…
例:Dim A() As Integer
然后在过程级使用ReDim语句定义数组的实际大小:
ReDim [Preserve] 数组名([下界1 To] 上界1,[下界2 To] 上界2,…) [As 类型],…
例: ReDim A(1 To 10) As Integer
ReDim Preserve A(1 To 20) As Integer
在使用数组时,还可以通过数组操作函数完成一些操作。例如Array函数:Array(参数表)。:Array函数将其“参数表”的值构成数组的各元素值,并赋值给一个Variant类型的变量,注意只能赋值给Variant类型的变量,赋值后的数组大小由参数的个数决定,数组下标的下界由Option Base语句指定的下界决定。
例如:
Dim A
A = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
执行上述语句后数组A各元素值为:
A(0)=1,A(1)=2,A(2)=3,…,A(9)=10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-02-15
展开全部
微软就这么规定的,你说为什么1+1=2?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询