redim语句
来源:互联网 发布:大数据 态势感知 编辑:程序博客网 时间:2024/05/19 22:04
描述
用于过程级声明动态数组变量并分配或重新分配存储空间。语法
ReDim [Preserve]varname(subscripts) [,varname(subscripts)] . . .ReDim 语句语法有以下部分:
部分描述Preserve当更改现有数组最后一维的大小时保留数据。varname变量名,遵循标准变量命名约定。subscripts数组变量的维数,最多可以声明 60 维数组。subscripts 参数语法格式如下:upper [,upper] . . .
数组的下界总是零。
说明
ReDim 语句通常用于指定或修改动态数组的大小,这些数组已用带有空括号的Private、Public 或 Dim 语句(没有维数下标)正式声明过。可以重复使用ReDim 语句更改数组维数和元素数目。如果使用了 Preserve关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。
下面的样例示范了如何不删除动态数组的原有内容而又增加末维的大小。
ReDim X(10, 10, 10). . .ReDim Preserve X(10, 10, 15)小心 如果减小数组的大小,则将丢失被排除的元素中的数据。
此命令有两种填写格式:
1:ReDim+变量名+数组维数
2:ReDim+Preserve+变量名+数组维数
第一种格式为完全重新分配一个新的数组,即将数组内容清空后,再给你分配一个新的,只是数组名字是你原来的。
第二种格式为扩充维数,即原来的数组内容不变,单纯地增加下标。增加的下标为新的下标-旧的下标。
(使用Redim写的代码,运行后直接将前面值覆盖了,看后一段代码)
Dim TempNum()
ReDim TempNum(5)
For i = 0 To 99
TempNum(i) = i
If i = UBound(TempNum) Then
维数达到最大下标,如不补充维数将越界。
Redim TempNum(i + 5)
补充维数
End If
Next
For i = 0 To 99
TracePrint TempNum(i)
打印内容测试是否赋值成功。
Next
运行的结果是:
用Redim preserver
ReDim TempNum(5)
For i = 0 To 99
TempNum(i) = i
If i = UBound(TempNum) Then
//维数达到最大下标,如不补充维数将越界。
Redim Preserve TempNum(i + 5)
//补充维数
End If
If i mod 2<>0
sum = sum +i
TracePrint sum
End if
Next
For i = 0 To 99
TracePrint TempNum(i)
//打印内容测试是否赋值成功。
Next
运行的结果为
可能有人会问我,为什么不用Dim(99999),这样不是还方便一些?其实描述分配变量是需要内存空间的!声明的越大,所需内存就越大!
- ReDim 语句
- ReDim 语句
- redim语句
- ReDim, split
- [VB.NET]VB REDIM
- Dim 和 Redim
- VBA - Redim an Array
- c#自建Redim动态数组
- AITD开发笔记:VB中数组的Dim与Redim
- REDIM陷阱(很多人都看过了吧)
- 大量数据进行数组操作的Redim Preserve替代方法
- java 实现重定义数组类似于VB的ReDim
- 记录集,换成数组/rs.getRows()/redim Preserve 保留原有数据
- 语句
- 语句
- 语句
- 语句
- 语句
- 杭电2005题(求一年的第几天)
- 杭电ACM(2006)
- 游戏外挂防封心得
- 按键精灵数组的赋值及使用
- Days 19 Handler
- redim语句
- 用户输入一组字符,选出所有用户输…
- Android JDK 的下载版本
- 用jav求平均值
- 如何设置Notepad 直接编译java程…
- 复习
- java中for循环的运用(例子)
- 本地MP4视频不能观看的解决办法
- java中static、this、super、final…