首页 > 专家说

如何动态分配数组大小?

来源:江南娱乐-意甲尤文图斯亚
时间:2024-08-17 13:28:11
热度:

如何动态分配数组大小?【专家解说】:ReDim 语句示例
该示例使用 ReDim 语句为动态数组变量分配和重分配存储空间。假设 Option base 是 1。 Dim MyAr

【专家解说】:ReDim 语句示例 该示例使用 ReDim 语句为动态数组变量分配和重分配存储空间。假设 Option base 是 1。 Dim MyArray() As Integer '声明动态数组。 Redim MyArray(5) '分配 5 个元素。 For I = 1 To 5 '循环 5 次。 MyArray(I) = I '初始化数组。 Next I 下一条语句重定义该数组的大小,并清除其中的元素。 Redim MyArray(10) '大小重定为 10 个元素。 For I = 1 To 10 '循环 10 次。 MyArray(I) = I '初始化数组。 Next I 下面的语句重定义该数组的大小,但没有清除其中的元素。 Redim Preserve MyArray(15) '大小重定为 15 个元素。 (更详细的信息请见下面:) 动态数组 数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。 动态数组就可以在任何时候改变大小。在 Visual Basic 中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。 如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。 要创建动态数组,请按照以下步骤执行: (如果希望数组为公用数组,则)用 Public 语句声明数组,或者,(如果希望数组为模块级,则)在模块级用 Dim 语句声明数组,或者(如果希望数组为局部数组,则)在过程中用 Static 或 Dim 语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。 Dim DynArray () 用 ReDim 语句分配实际的元素个数。 ReDim DynArray (X + 1) ReDim 语句只能出现在过程中。与 Dim 语句、Static 语句不同,ReDim 语句是一个可执行语句,由于这一语句,应用程序在运行时执行一个操作。 ReDim 语句支持这样的语法,它与固定数组中使用的语法相同。对于每一维数,每个 ReDim 语句都能改变元素数目以及上下界。但是,数组的维数不能改变。 ReDim DynArray (4 to 12) 例如,用第一次声明在模块级所建立的动态数组 Matrix1: Dim Matrix1 () As Integer 然后,在过程中给数组分配空间: Sub CalcValuesNow () . . . ReDim Matrix1 (19, 29) End Sub 这里的 ReDim 语句给 Matrix 分配一个 20 × 30 的整数矩阵(元素总大小为 600)。还有一个办法,用变量设置动态数组的边界: ReDim Matrix1 (X, Y) 注意 您可以将字符串赋值给大小可变的字节数组。一个字节数组也可以被赋值给一个可变长的字符串。一定要注意字符串中的字节数会随平台而变化。同一个字符串在 Unicode 平台上的字节数是它在非 Unicode 平台上的两倍。 保留动态数组的内容 每次执行 ReDim 语句时,当前存储在数组中的值都会全部丢失。Visual Basi 重新将数组元素的值置为 Empty(对 Variant 数组)、置为 0(对 Numeric 数组)、置为 零长度字符串(对 String 数组)或者置为 Nothing(对于对象的数组)。 在为新数据准备数组,或者要缩减数组大小以节省内存时,这样做是非常有用的。有时希望改变数组大小又不丢失数组中的数据。使用具有 Preserve 关键字的 ReDim 语句就可做到这点。例如,使用 UBound 函数引用上界,使数组扩大、增加一个元素,而现有元素的值并未丢失: ReDim Preserve DynArray (UBound (DynArray) + 1) 在用 Preserve 关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。所以可这样编程: ReDim Preserve Matrix (10, UBound (Matrix, 2) + 1) 而不可这样编程: ReDim Preserve Matrix (UBound (Matrix, 1) + 1, 10)
  1. 一种燃料既有高热值又有低热值吗?高热值和低热值实际意义和作用是什么?它的大小有什么决定?
    2024-08-17
  2. 风力发电机组都有哪些方式可以控制其从空气中吸收能量的大小,分别如何实现
    2024-08-17
  3. 哪位能帮我把照片修改成宽度要求在160像素以内,高度在210像素以内,大小15kb到45kb之间,格式jpg
    2024-08-17
  4. 通常状况下液化石油气与空气密度大小关系
    2024-08-17
  5. 小区安装无负压供水设备,设备大小和水泵台数功率,怎么计算,根据什么计算,或者有没有这方面的书籍学习
    2024-08-17
  6. 小区安装无负压供水设备,设备大小和水泵台数功率,怎么计算,根据什么计算?
    2024-08-17
  7. 谁能提供嘉兴五县两区的所有工业园区、经济开发区的信息?要详细的,包括位置大小等!重酬!!!!
    2024-08-17
  8. 锅炉的引风机怎么配置?根据哪些参数来确定风机的大小
    2024-08-17
  9. 水电站的大小是按照什么来划分的?
    2024-08-17
  10. 热水器火苗大小不均匀,煤气味重,着了之后有响声之后熄灭 请问是什么原因?谢谢!
    2024-08-17
  11. 微小型水轮机,水轮发电机选型 水头:8-10m; 流量:160立方米/小时; 管径大小:250mm 请问怎样选型?
    2024-08-17
  12. 无论大小发电厂都是有发电机组构成的吗?
    2024-08-17
  13. 热水器煤气换天然气只换了燃烧气排,调节气量大小开关没换,使用时不是火大就是不着火。请个位老师指点一下,谢
    2024-08-17
  14. 高一 物理 括号四 重力势能还能判断大小吗
    2024-08-17
  15. 天然气热水器耗气量 和水量设定大小温度高低有关系吗 成什么关系???
    2024-08-17
Baidu
map