Delphi 数据类型

标识符 类型 常量
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^ ;