目录
- dim
- 例子
- DIM
- 数组
- 多维数组
dim
例子
dim x as integer
dim y as integer
DIM z1 as integer
dim z2 as integer
dim userName as string
x=5
y=8
z1=x+y
z2=x-y
Print "x = "; x
Print "y = "; y
Print "z1:"; z1;" z2:",z2
编译并运行
F:\learn\fbs>1
x = 5
y = 8
z1: 13 z2: -3F:\learn\fbs>
dim x as integer
dim y as integer
DIM as integer z1,z2
dim userName as string
x=5
y=8
z1=x+y
z2=x-y
Print "z1:"; z1;" z2:",z2
userName="张三"
print "你好";userName
F:\learn\fbs>1
z1: 13 z2: -3
你好张三F:\learn\fbs>
DIM
语法
Dim [Shared] name1 As DataType [, name2 As DataType, ...]
或
Dim [Shared] As DataType name1 [, name2, ...]
数组
Dim name ( [lbound To] ubound [, ...] ) As DataType
Dim name ( Any [, Any...] ) As DataType
Dim name ( ) As DataType
初始化
Dim scalar_symbol As DataType = expression | Any
Dim array_symbol (arraybounds) As DataType = { expression [, ...] } | Any
Dim udt_symbol As DataType = ( expression [, ...] ) | Any
按名称声明变量并保留内存以容纳它。
变量必须先声明,然后才能在-lang fb方言中使用,或者在其他方言中使用Option Explicit。只有在-lang qb和-lang fblite方言中,可以在不首先声明变量的情况下使用变量,在这种情况下,它们被称为隐式变量。
Dim可用于声明和分配任何受支持数据类型、用户定义类型或枚举的变量。
根据变量或数组的声明位置和方式,可以更改其在内存中的分配方式。请参阅存储类别。
通过用逗号分隔每个变量声明,可以在单个Dim语句中声明多个变量。
比如
'' Variable declaration examples'' One variable per DIM statement
Dim text As String
Dim x As Double'' More than one variable declared, different data types
Dim k As Single, factor As Double, s As String'' More than one variable declared, all same data types
Dim As Integer mx, my, mz ,mb'' Variable having an initializer
Dim px As Double Ptr = @x
具有隐式数据类型的显式变量
在-lang qb和-lang fblite方言中,即使变量是显式声明的,如果数据类型不是通过名称或类型后缀显式给出的,也将为其提供默认数据类型。默认数据类型在-lang qb方言中为Single,在-lang fblite方言中为Integer。通过使用Def###语句,可以在整个源列表中更改默认数据类型。(例如,DefInt、DefStr、DefSng)
'' Compile with -lang qb'$lang: "qb"'' All variables beginning with A through N will default to the INTEGER data type
'' All other variables default to the SINGLE data type
DefInt I-NDim I, J, X, Y, T$, D As Double
'' I and J are INTEGERs
'' X and Y are SINGLEs
'' T$ is STRING
'' D is DOUBLE
数组
与大多数BASIC方言一样,FreeBASIC支持索引范围从下限到上限的数组。在所示的语法中,lbound指的是下限或最小索引。ubound是指上限,或最大的索引。如果未指定下限,则默认为零,除非使用Option Base。
Const upperbound = 10'' Declare an array with indexes ranging from 0 to upperbound,
'' for a total of (upperbound + 1) indexes.
Dim array(upperbound) As Single
多维数组
多维数组也可以声明,并以这种确定的顺序存储:仅在最后一个索引中不同的值是连续的(行主顺序)。
多维数组的最大维数为8。
'' declare a three-dimensional array of single
'' precision floating-point numbers.
Dim array(1 To 2, 6, 3 To 5) As Single'' The first dimension of the declared array
'' has indices from 1 to 2, the second, 0 to 6,
'' and the third, 3 to 5.
如果与Dim一起用于声明数组维度的值都是常量,则将创建固定长度(静态大小,除非指定了Option Dynamic)的数组,而使用一个或多个变量来声明数组维度,则即使Option Static有效,也会使其变长。
数组可以通过几种方式声明为可变长度:使用带有空索引集的Dim(Dim x()),使用带有变量索引的Dim或使用关键字Redim,或使用Any代替数组边界,或通过元命令$Dynamic声明数组。可变长度数组不能使用初始值设定项。
用Dim声明的数组具有常量索引,且不在Option Dynamic之前,数组的长度是固定的(在运行时不可调整大小),可以使用初始值设定项。
上限可以是省略号(…,3点)。这将导致根据初始值设定项中找到的元素数量自动设置上限。以这种方式使用省略号时,必须使用初始值设定项,并且它不能是Any。请参见省略号页面以获取简短示例。
另请参见固定长度数组和可变长度数组。