数组的分类
数组分类
1.数组是由一组有序的值或键值对组成的数据结构
2.数组根据键名类型分为:索引数组 与 关联数组 二大类
3.索引数组:键名是元素的位置索引,默认从0开始,采用系统自动处理可以省略键名
4.关联数组:键名是自定义的字符串,类似于对象中的属性列表
数组类型
编辑 语音
多维数组
有时需要追踪记录数组中的相关信息。
例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的 X、Y坐标。这时应该用多维数组存储值。
可用 Visual Basic 声明多维数组。
例如,下面的语句声明了一个过程内的 10 × 10 的二维数组。
Static MatrixA (9,9) As Double
可用显式下界来声明两个维数或两个维数中的任何一个:
Static MatrixA (1 To 10,1 To 10) As Double
可以将所有这些推广到二维以上的数组。例如:
Dim MultiD (3,1 To 10,1 To 15)
这个声明建立了三维数组,大小为 4 × 10 × 15。元素总数为三个维数的乘积,为 600。
注意
在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用 Variant 数组时更要格外小心,因为他们需要更大的存储空间。
用循环操作数组
可以用 For循环嵌套有效的处理多维数组。例如,在 MatrixA 中基于每个元素在数组中的位置为其赋值:
Dim I As Integer,J As Integer
Static MatrixA(1 To 10,1 To 10) As Double
For I = 1 To 10
For J = 1 To 10
MatrixA (I,J) = I * 10 + J
Next J
Next I
一维数组
定义
一维数组是最简单的数组,其逻辑结构是线性表。要使用一维数组,需经过定义、初始化和应用等过程。
数组声明
在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。
数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。
举例:
int[]x; //声明名称为x的int型数组
x=new int[10]; //x数组中包含有10个元素,并为这10个元素分配内存空间
在声明数组时,也可以将两个语句合并成一行,格式如下:
数据类型[]数组名= new 数据类型[个数];
利用这种格式在声明数组的同时,也分配一块内存供数组使用。如上面的例子可以写成:
int[]x = new int [10];
等号左边的int[]x相当于定义了一个特殊的变量x,x的数据类型是一个对int型数组对象的引用,x就是一个数组的引用变量,其引用的数组元素个数不定。等号右边的new int[10]就是在堆内存中创建一个具有10个int型变量的数组对象。int[]x = new int [10];就是将右边的数组对象赋值给左边的数组引用变量。 [5]
二维数组
定义
前面介绍的数组只有一个下标,称为一维数组, 其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的, 因此C语言允许构造多维数组。多维数组元素有多个下标, 以标识它在数组中的位置,所以也称为多下标变量。本小节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组类型说明的一般形式是:
类型说明符数组名[常量表达式1][常量表达式2]…;
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:
int a[3][4]; 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
二维数组在概念上是二维的,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的, 也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在C语言中,二维数组是按行排列的。在如上中,按行顺次存放,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为
int类型,该类型占两个字节的内存空间,所以每个元素均占有两个 字节(数组中每一格为一字节)。
三维数组
三维数组,是指维数为三的数组结构。三维数组是最常见的多维数组,由于其可以用来描述三维空间中的位置或状态而被广泛使用。
三维数组就是维度为三的数组,可以认为它表示对该数组存储的内容使用了三个独立参量去描述,但更多的是认为该数组的下标是由三个不同的参量组成的。
数组这一概念主要用在编写程序当中,和数学中的向量、矩阵等概念有一定的差别,主要表现:在数组内的元素可以是任意的相同数据类型,包括向量和矩阵。
对数组的访问一般是通过下标进行的。在三维数组中,数组的下标是由三个数字构成的,通过这三个数字组成的下标对数组的内容进行访问。