2024年6月5日发(作者:)

谈谈VB NET数组的使用 vb 数组长

谈谈数组的使用

我们都知道在所有程序设计语言中数组都是一个非常重要的概念,数组的作

用是允许程序员用同一个名称来引用多个变量,因此采用数组索引来区分这些变

量。很多情况下利用数组索引来设置一个循环,这样就可以高效地处理复杂的情

况,因此在很多情况下,使用数组可以缩短或者简化程序的代码。本文主要介绍

数组的使用,希望对大家的使用带来帮助。

数组中的第一个元素的下标称为下界,最后一个元素的下标称为上界,其余

的元素连续地分布在上下界之间,并且数组在内存中也是用连续的区域来存储的,

所以要求声明数组每维的长度不能超过Long数据类型的最大值,即264-1=263。

我们把数组当作一个对象来处理,这就意味着数组类型是单个引用

类型,数组变量包含指向构成数组元素、数组维和数组长度等数据的指针,数组

之间互相赋值其实只是在相互复制指针,而且数组继承了System名字空间的

Array类。

中提供的数组类型和VB 6.0中有一些差别,我们将在下面做详细的

讲解。

(1)数组的声明

中的数组有两种类型:定长数组和动态数组。这里先介绍定长数组

的几种不同的声明方式,不同的声明方法将导致数组不同的有效范围。

◆Dim语句在模块段建立模块级数组,例如:

Dim arrayl(3)As Integer◆Public语句在模块的声明部分建立一个公共

数组,例如:

Public counttype(20)as string◆Static语句声明一个过程内的局部数

组,例如:

Public Sub Ipaddress()Static server(30)as stringEnd 还

提供了新的数组初始化语法,只需要简单的语句就可以完成数组的声明和初始化,

例如:

New array initialization syntaxDim arrayl As Integer()={2,4,8}在

中,为了和其他语言更加易于协同操作,数组的下标均设定为0,不允许声

明一个下界为1的数组,因此Option Base语句不再被支持,而且在声明

一个数组时必须用它的元素个数,而不是它的上界来初始化,例如:

//声明一个一维数组具有3个元素,下标从0~2Dim arrayl(3)As

Integerarrayl(0):2arrayl(1)=4arrayl(2)=8以上声明的数组有三个元素,下

标从0到2,如果代码企图访问下标为3的数组元素,将引起运行错误。

(2)二维数组及多维数组

除了较为简单的一维数组外,还支持多维数组,其声明方法和一维数

组没有太大的区别,例如:

StatiC multidim(10,10)as double Public Singledim(5,8,10,3)as

single以上语句声明了一个lO行,10列的二维数组。在中,数组最多有

32维,而且每一维的长度都不能够超过Long数组类型的最大值。数组总尺寸的

限制是不一样的,这与所采用的操作系统以及计算机中使用的内存量有关。数组

的维数将保留在属性中,每维的长度可以由

gfll方法来得到。需要提醒注意的是,由于中数

组是以0为基的,如果返回来的值为9,则表示数组是10维的。当为数组继续添

加维数的时候,使其扩展为多位数组,此时会使数组所需的存储空间大幅度增加,

所以在使用多维数组时对这个方面也要多加考虑。

另外还提供了Lbound()和Lbound()两个函数来返回数组的上、下

界。中国自学编程网整理发布,对于一维数组而言,只需要一个参

数,那便是数组名。例如:

one==Ubound(arrayl)对于多位数组,也只是简单地将逗号后面的第二个参

数指定为数组的第几维。例如:

tw0=Lbound(multidim,7)如果没有指明是哪一维,系统默认为第一维。

(3)动态数组

有时在程序运行之前无法确认数组的大小,提供了在程序运行时动

态决定数组大小的功能,即动态数组。它具有灵活多变的特点,可以在任何时候

根据需要随时改变数组的大小,有助于内存的管理。建立一个动态数组的详细步

骤如下:

①和声明一般数组一样,可以使用前面介绍的几种声明,只是赋一个空维数

组,这样就将数组声明为动态数组。典型的声明语句为:

Dim types()As integer②然后使用ReDim语句来配置数组大小。ReDim语

句声明只能在过程当中使用,它是可执行语句,可以改变数组中元素的个数,但是

却不可以改变数组的维数,就是说不能把一维变为二维。在ReDim语句配置数组

元素个数时,数组中的内容将全部置为0。典型语句为:

ReDim Types(X 1)③如果想改变数组大小又不想丢失原来的数据,只要在

ReDim语句中包含Preserve关键字就可以,典型语句为:

ReDa_m PresetVe Types(10,23)对于多维数组,在使用Preserve关键字时,

只能修改最后一维的大小。如果改变其他维,那么将出现运行错误。如果不清楚

某维的当前大小,可以使用GetI~ength函数来获取。

(4)数组的使用

在'VB 6.0中,可以用For Each来循环遍历一个数组。例如:

Dim xAs Integer F0r Each xIn arrayl ine(x)Next在

中可以使用For循环和数组长度来遍历一个数组。例如:

Dim iAs工nteger F0ri=0 T0(-

1)ine(arrayl(1)J Next i在使用数组时还要注意,不仅声明语

法有变化,而且在运行时处理方式也有了很大的变化。在堆栈中给数组

分配地址空间,当向一个方法传递数组类型的参数时,使用的是引用传递而不是

值传递。下面是互相传递数组引用的三个方法:

Dim arrayl(3,3)AS Integer Dim array2 As Integer(,)Redim

array2(3,3)Dim array3 As Integer(,)={{2,4},{12,29}}方法一在两个方向同

时传递了数组引用,一般用来向调用者返回数组引用。方法二和方法三从调用者

向方法的实现中传递了数组引用。方法二的参数被声明为一维数组,而在方法三

中参数被声明成了-维数组。

(5)数组的高级特性

①数组的数组

在O~ect数组中还可以组装不同类型的数组。例如,以下代码中先建立两个

数组,一个是Integer类型,另一个是String类型,然后再声明一个O~ect类型

的数组,把前两个数组分装在其中。

Dim Ias integer//声明一个integer类型的数组Dim grade(15)as

integerFor i:0 tO 14Grade(i)=iNeXt i//声明一个string类型的数组Dim

name(15)as StringFori=0 tO 14Name(i):"Student"

历史上的今天:

Perl-07---数组|perl数组长度2010-12-10php与web页面|php页面传递

参数2010-12-10