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企业版
展开
 我来答
tianqing20wen

2013-02-15 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5096万
展开全部
简单的说吧 就是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)
这个我赋值的时候只有4个元素呀
追答
在array内部是不判断arr3到底有几个元素的空间 能不能和参数的个数所匹配 它只看你是不是动态数组 能不能按array参数的个数来redim 然后给你赋值而已

你的疑问就好像
dim arr3(1 to 4)
redim arr3(1 to 4)
这样
76de1
2013-02-15 · TA获得超过1158个赞
知道小有建树答主
回答量:666
采纳率:100%
帮助的人:492万
展开全部
因为arr3=array(1,4,2,8)已经明确定义
dim arr3(1 to 4)是变成多余的了
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
说啊———喵9779
2015-10-01 · TA获得超过2403个赞
知道小有建树答主
回答量:1034
采纳率:44%
帮助的人:661万
展开全部
数组在使用之前必须先定义。
按数组占用存储空间的方式不同,分为两种数组:静态数组和动态数组。
静态数组的定义: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?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式