关于vb 中 redim 的一个问题

37.下面正确使用动态数组的是______。A)Dimarr(30)AsIntegerB)Dimarr()…………ReDimarr(10)ReDimarr(30)AsIn... 37.下面正确使用动态数组的是______。
A) Dimarr(30) As Integer B) Dim arr()
…… ……
ReDim arr(10) ReDim arr(30) As Integer

C) Dimarr() As Integer D) Dimarr()
…… ……
ReDim arr(30) As String ReDim arr(3,6)
说一下那个对 错的为什么错
展开
 我来答
RZDun
推荐于2016-04-22 · TA获得超过819个赞
知道大有可为答主
回答量:1820
采纳率:80%
帮助的人:417万
展开全部
定义动态数组,应先定义一个没有上限的数组,然后再用ReDim定义该数组的上限,A中定义时已定义了上限;B中没有注明数组类型,那么,就是默认的Val,但ReDim改变了它的类型,这样是会出错的;C和B问题一样(改变数组类型);只有D是正确定义了一个二维数组。
ocwp577
2014-06-09 · TA获得超过103个赞
知道答主
回答量:117
采纳率:100%
帮助的人:106万
展开全部
Dim a() As Integer '定义不定长数组
Private Sub command1_click()
ReDim a(1 To 5) '重新定义数组数目,下界为1,上界为5
For i = 1 To 5
a(i) = i '初始化数组数据
Next i
ReDim a(1 To 10) '重新定义数据数据,下界为1,上界为10
For i = 6 To 10
a(i) = 2 * i '初始化元素6~10的数据
Next i
For i = 1 To 10
Print a(i)
Next i
End Sub
=================================
第8至10行代码给第6至10个元素初始化数据,值为循环数的2倍
=====================================
因为redim是在循环里定义的,因此,只有最后一个循环的redim a(5)定义没有被修改,而在该次循环中初始化的是a(5)=5,因此,当循环结束时,数组a(1)到a(4)中的值是0,a(5)中的值是5,也就有了SUM的值是5,而A(2)的值是0的输出结果了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式