asp定义数组详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

asp定义数组详解

数组是有序数据的集合。数组中的元素可以不属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素,更改其中一个元素并不会影响其它元素。数组的下标是有界的,分为下界和上界。数组可以用Dim、Private、Public或Static来声明,它们的语法格式相同。下面只介绍用 Dim声明数组的方法。

1.数组的定义与声明

数组的定义语法如下:

Dim 数组名( [[下标下界 To ] 下标上界] ) [As 数据类型]

例如(假设在当前模块中数组的缺省下界为0)):

① Dim A(10) As Integer

表示数组名为A,此数组下标下界为缺省值0,下标上界为10,有11个Integer类型的元素,从A(0)、A(1)到A(10)。

② Dim B(1 To 20) As Integer

表示数组名为B,此数组下标下界为1,下标上界为20,有20个Integer类型的元素,从B(1)到B(20)。

③Dim DayArray(50)

表示DayArray 是一个有51 个索引(从0 到50)元素的Variant 数组。

④Dim Matrix(3, 4) As Integer

表示Matrix 是一个二维 Integer 数组。

⑤Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double

表示MyMatrix 是一个显式指定了上下界的三维 double 数组。

⑥Dim BirthDay(1 To 10) As Date

表示BirthDay 是一个索引从 1 到 10 的 Date型数组。

2.Option Base 语句

Option Base 语句在模块级别中使用,用来声明数组下标的缺省下界。

Option Base 语句的语法如下:

Option Base {0 | 1}

说明:缺省状态下数组下界为 0,此时无需使用 Option Base 语句。如果使用该语句规定数组下界1,则必须在模块的数组声明之前使用Option Base 语句。

注意:

(1)Dim、Private、Public、ReDim 以及Static 语句中的To 子句提供了一种更灵活的方式来控制数组的下标。不过,如果没有使用To 子句显式地指定下界,则可以使用Option Base 将缺省下界设为1。使用 Array 函数创建的数组的下界也受 Option Base 语句指定的下界的决定, 除非Array 是由类型库(例如VBA.Array )名称限定,如果是由类型库名称限定,则使用Array 函数创建的数组的下界不受Option Base 的影响。

(1) Option Base 语句只影响位于包含该语句的模块中的数组下界。

关于数组声明的几点说明:

①数组名命名规则和变量名的相同。

②数组名后是用圆括弧括起来的,不能用方括弧,不同于C语言。

③下标的下界必须不能大于其上界。

④可以用变量名或常数名(以及实数)作下标的边界。当下标的边界是常数名时,数组的大小固定,当下标的边界是变量名时,数组的大小可作动态定义,即数组的大小取决于程序运行过程中变量的值。因此,VB 中数组又可以分为两种数组:静态数组、动态数组。

3.静态数组

静态数组是指数组元素的个数是固定不变的,即它们占用的内存空间大小是固定不变的。根据固定大小数组的维数不同,可以将它分为一维数组和多维数组。

声明多维数组的语法格式为:

Dim 数组名([下标边界列表]) [As 数据类型]

下标边界的定义形式:[下标下界 To]下标上界

下标边界列表指用逗号分开的数组各维的下标边界,即

[下标下界To]下标上界,[下标下界To]下标上界,……,[下标下界To]下标上界

(第一维)(第二维)(第n维)

当n=1时,数组称作一维数组;当n=2时,数组称作二维数组;依次类推,当n=m时,数组称作m维数组。

下面举例介绍一维数组的使用。

’声明一个长度为51的字符串数组FriendsName

Dim FriendsName(50) As String

’声明一个长度为11的全局整型数组Class

Public Class(10) As Integer

一维数组中的元素个数为(上界-下界+1)。

为数组赋初值可以采用循环语句,如:

Dim I As Integer

For I = 0 To 11 ’循环语句的使用程序流程的控制

C(I) = I

Next I

如果不显式指定下标下界,则数组的下标下界由Option Base 语句控制。如果没有 Option Base 语句则下界为默认为 0。

数组的维数并不限于2,在VB中,可以扩大至于60,在实际应用上对三维以上的数组的应用是不多的。定义一个多维数组时只需一条Dim语句指定数组的所有下标边界即可,使用多维数组的可以很方便的表示一些有意义的统计数据。例如:

Dim Profit(16,10,12) As Currency

这个Profit数组可用来表示以店名、部门及月份为参数的某百货公司的利润。如:Profit(2,8,11)代表了第二分店的第八部门在11月份的利润。

4.动态数组

有时在数组开始使用前,不能知道需要多大的数组才能满足实际需要。当然可以把数组的大小定义到足够大来满足任意的实际应用需要,这种方法效率很低(大量浪费内存空间)。如果使用动态数组,就可以在程序运行时根据实际需要,精确定义数组的大小。

在声明数组时,不给出维数列表就是将数组声明为动态数组。例如: Dim MyArry() As Integer

在使用动态数组前,必须使用ReDim语句把它重新定义。如前面声明的数组MyArry,可以用以下语句将它定义为一个动态二维数组。

ReDim MyArry(10,10)

还可以通过重复执行ReDim语句,多次定义动态数组。使用ReDim最多能定义数组的维数是60。ReDim语句可以改变数组每维的元素个数,但不能改变维数。下面是对ReDim语句的一个标准应用举例。

Dim MyArry() As Single ‘声明动态数组

ReDim MyArry(30,20,10) ‘重新定义数组

ReDim MyArry(50,23,21) ‘再次重新定义数组ReDim的语法与Dim的相同,此外,它还有选择项Preserve关键词: ReDim Preserve 数组名([ [下标下界 To]下标上界])[As 数据类型]

例如:

ReDim MyArry(50,23,21)

ReDim Preserve MyArry(50,23,50)

相关文档
最新文档