标识符 | 类型 | 常量 |
---|---|---|
Char | 字符 | 'a', Chr(97), #97 |
Boolean | 布尔 | True, False |
(str1, ...) | 枚举 | (monday,tuesday) |
from..to | 子界 | 0..100 |
Integer | 整数 | -12, 1 |
Real | 浮点数 | 1.23 |
String | 字符串 | 'this is '#97' string', #13#10 |
set of 1..10 | 集合 | [1,3,6] |
array[1..5] of integer | 数组 | |
record | 记录 | |
file | 文件 | |
^basetype | 指针 | |
function[(para,...)]:ret_type | 函数指针 | |
procedure[(para,...)] | 过程指针 | |
variant,olevariant | 通用类型 | 常用于对象类型 |
标识符 | 类型 | 常量范围 |
---|---|---|
Integer | 整数,32-bit | -147483648..2147483647 |
Cardinal | 无符号整数,32-bit | 0..4294967295 |
Shortint | 整数,8-bit | 128..127 |
Smallint | 整数,16-bit | 32768..32767 |
Longint | 整数,32-bit | 2147483648..2147483647 |
Int64 | 整数,64-bit | 2^63..2^63 |
Byte | 无符号整数, 8-bit | 0..255 |
Word | 无符号整数, 16-bit | 0..65535 |
Longword | 无符号整数, 32-bit | 0..4294967295 |
标识符 | 尺寸 | 范围 | 有效位数 |
---|---|---|---|
Real | 8 | 5.0 x 10^-324 .. 1.7 x 10^308 | 15-16 |
Real48 | 6 | 2.9 x 10^-39 .. 1.7 x 10^38 | 11-12 |
Single | 4 | 1.5 x 10^-45 .. 3.4 x 10^38 | 7-8 |
Double | 8 | 5.0 x 10^-324 .. 1.7 x 10^308 | 15-16 |
Extended | 10 | 3.6 x 10^-4951 .. 1.1 x 10^4932 | 19-20 |
Comp | 8 | -2^63+1 .. 2^63-1 | 19-20 |
Currency | 8 | -922337203685477.5808 .. 922337203685477.5807 | 19-20 |
字符以单引号为界,单引号本身表示为 ''''。
标识符 | 内存需要 | |
---|---|---|
Char | 1 | |
AnsiChar | 1 | |
WideChar | 2 |
字符串以单引号为界,单引号本身表示为 ''''。
可以作为字符数组取指定位置的字符,下标从 1 起。
标识符 | 最大长度 | 内存需要 |
---|---|---|
ShortString | 255 | 2-256 |
AnsiString | ~2^31 | 4-2GB |
WideString | ~2^30 | 4-2GB |
数组的下标可为多种顺序类型。
维数 | 定义语法 |
---|---|
一维 | array[0..7] of data_type |
多维 | array[0..7] of array[0..7] of data_type
array[0..7, 0..7] of data_type array[boolean, 0..7] of data_type |
动态 |
a : array of integer SetLength(a, 10) // 取下标范围 Low(a) High(a) a : array of array of integer SetLength(a, 10, 10)
|
生成 Variant 数组 | VarArrayCreate([1,9],varDatatype)
VarArrayOf('abcd','0','-') |
数组常量 | const arr1 : array[0..2] of string=('1','2','3'); const arr2 : array[0..1,0..1] of string=(('1','2'),('3','4')); |
项目 | 语法 |
---|---|
记录 | type myrecord = record data1 : type1 data2 : type2 data3 : type3 end; |
联合 |
type MyRecord = record case Byte of // case var:type of 1:( i:integer ); 2:( c:array [0..3] of char); end; |
使用 | myrecord.data1 = value; |
项目 | 语法 |
---|---|
定义 | type PI = ^Integer; var i,j : Integer; p : ^Integer; // p : PI; |
赋地址 | i := 123 ; p := @i ; |
取值 | j := p^ ; |