1.Simple:
1.1.Ordinal:
Integer:
Integer 4byte
Cardinal un_4byte
Shortint 1byte
Smallint 2byte
Longint 4byte
Int64 8byte
Byte un_1byte
Word un_2byte
LongWord un_4byte
Character
Char
AnsiChar
WideChar
Boolean
Boolean
ByteBool
WordBool
LongBool
Enumerated
Subrange
1.2.Real
Real 8byte 15-16精度
*Real48 6byte 11-12精度
Single 4byte 7-8精度
Double 8byte 15-16精度
Extended 10byte 19-20精度
*Comp 8byte 19-20精度
Currency 8byte 19-20精度
2.String
*ShortString
AnsiString
WideString
PChar
PAnsiChar
PWideChar
3.Structured
Set
Array
Record
File
Class
Class reference
Interface
4.Pointer
无类型指针
有类型指针
5.Rrocedural
普通过程类型
对象过程类型
6.Variant
Variant
OleVariant
注:蓝色标记表示可直接使用;*号表示向后兼容,不再使用。
数据类型解释:
1.Ordinal有序类型:该类型的变量有序变量只能在取值范围中取某个位置上的变量,不能越界。
Integer:基本类型是Integer和Cardinal。
Character:基本类型是Char,AnsiChar和Char处理单字节,WideChar处理多字节。
Boolean:基本类型是Boolean,ByteBool占用一个字节,WordBool占用两个字节,LongBool占用四个字节。
Enumerated:枚举类型定义有序值的集合,索引号从0开始。
Subrange:子界类型定义有序值的集合,但是子界的有序值必须在其他有序类型定义过,索引由父类决定。
2.Real实数类型:基本类型是Real。目前等同于double。声明变量一般使用Double和
Single,在过程中定义可传递任意参数时使用Extended。
3.String字符串类型:ShortString在内存中占用0..255个字节,第0字节存储字符串长度。为了避免浪费空间,可以使用String[MaxLength],占用MaxLength+1个字节。AnsiString是单字节存储,WideString是两字节存储一个字符。PChar申明以NULL结尾的字符串指针,这个字符串的字符是Char型,相当于指向一个Char串。
4.Structured构造类型:包含多个元素或者字段。Set类型的基本类型可以是Enumerated和Subrange,所以容纳的是有序值。Array分为静态数组和动态数组,动态数组需要使用SetLength动态分配空间,并且可以使用SetLength重新分配空间,已有数据会被保留。Record是多个任意元素的集合。File类型用来读取文件。
5.Pointer指针类型:分为有类型指针和无类型指针。占用四个字节。
6.Variant可变类型:Variant可存储大部分不同的类型,指针类型只能使用PVariant来存储。Variant类型变量有三种状态:Unassigned(没有值),Null(值为空)和非Null。默认是Unassigned状态。