FreeBASIC学习笔记——第05章 数组

        数组是变量的特殊类型,作为多个值的容器或元素。数组可以存储任何类型的元素,并且其所有元素共享相同的类型。这些元素通过数组中的位置来读取或写入。数组有大小,它们等于在任何给定时间存储的元素的数量。静态在其整个生命周期内具有不变的大小,而动态数组的大小可以动态更改。数组使用操作符“()”来访问数组中的各个元素。
5.1 静态数组的定义
        静态数组一旦定义后就不能改变范围,可以使用Extern、Static和Dim来声明。其中LBound 是指下限或最小索引。UBound 是指上限或最大索引。如果未指定下限,则默认情况下为0。其中-lang fb 选项(默认选项),默认下限始终为0,不可改变。而-lang fblite -lang qb 选项可以使用Option Base语句声明数组的下标。
        数组可以是一维的,也可以是多维的。一维数组可以被认为是简单的一行元素。数组也可以有多个维度,使用两个或多个位置访问数组的单个元素。二维数组使用两个位置:一个行和一个列位置来引用单个元素,如网格或表格。三维数组使用三个位置:一个行、一个列和一个深度来引用单个元素,如立方体。四维数组可以被认为是一个或多个三维数组等等。多维数组的声明就像一维数组,只不过指定了多个下限和上限范围。多维数组的最大维数为8维。数组的初始化赋值可以用“{}”包含所需赋值数据。

语法:

Dim ArrayName([LBound To]UBound [,...]) as DataType
'LBound为数组下限,UBound为数组上限
'ArrayName为数组名
'DataType为数据类型

例如:一维数组

Const UpperBound = 3
dim Array1(UpperBound) As Single '定义一个上限为UpperBound的数组,有UpperBound+1个元素
dim Array2(1 To UpperBound) as long '定义一个从 1 到UpperBound的数组,有UpperBound个元素
dim Array3(UpperBound) as ubyte = {0,1,2,3} '定义数组并赋值

例如:多维数组

dim Array1(2,5) As Single '定义一个二维数组,有3×6个元素
dim Array2(1 to 2,1 to 5) as long '定义一个二维数组,有2 × 5个元素
dim Array3(1 to 2,1 to 5) as ubyte = {{0,1,2,3,4},{1,2,3,4,5}} '定义数组并赋值

5.2 动态数组        

        动态数组可以改变大小,因此编译器选择在空闲存储器中为数组元素赋值内存。动态数组使用Extern、Static、Dim和ReDim声明。用Dim声明一个空的动态数组后必须用ReDim调整动态数组的大小,也可以直接用ReDim声明一个动态数组。Preserve关键字用与声明数组是否保存调整之前的数据,没有Preserve关键字则不保存数据。

        LBound(数组,维度)和UBound(数组,维度)函数可以检索数组维度的下限和上限。如果未指定维度则默认为第一个维度的下限或上限。

        Erase函数用于擦除数组中的数据或释放分配给动态数组的内存。

语法:

'定义空数组 - 后面需要用ReDim再声明一次大小
Dim ArrayName(Any [,Any...]) as DataType
Dim ArrayName() as DataType
'定义一个动态数组
ReDim ArrayName([subscript [, ...]]) As datatype
'调整动态数组的大小:
ReDim [Preserve] ArrayName([subscript [, ...]]) [As datatype]
'subscript是数组的维度的下限和上限范围。

例如:

Dim Array() as long  '创建一个空的数组
Redim Array(1 to 10) as long '修改数组大小为1 - 10 
'赋值
For i As Long = LBound(Array) To UBound(Array)
	Array(i) = i
Next
'打印数据
For i As Long = LBound(Array) To UBound(Array)
	Print Array(i)
Next
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值