现在的位置: 首页 > 综合 > 正文

Object Pascal数据类型全家福

2012年11月18日 ⁄ 综合 ⁄ 共 1703字 ⁄ 字号 评论关闭

根据Delphi在线帮助,绘制了如下的全家福,所有数据类型都按照各自的辈分站好了位置。

0051

1、Ordinal有序类型

Object Pascal将OrdinalReal归类于Simple(简单)旗下。

Integer基本类型是IntegerCardinal,它们都是32位的,操作系统和CPU可以花费最少的时间处理它们。

Character基本类型是CharAnsiCharChar是等同的,都是用来处理8位字符(单字节字符),而WideChar用来处理多字节字符(Delphi7实现为16位,即2个字节)。

Boolean基本类型是Boolean,另外三种都是为了兼容而定义的。BooleanByteBool都是占用1个字节,而WordBoolLongBool分别占据2个字节和4个字节。

Enumerated枚举类型定义一系列有序值的集合,集合中的元素一般从0开始连续索引。

Subrange子界类型也是定义了一系列有序值的集合,但是子界的有序值必须是在别的有序类型中定义过的。子界中有序值的索引被基类确定。

2、Real实数类型

Real属于Simple大类,但是因为无理数的介入,使得Real不在能够有序,比如1.0和1.2之间可以取无限个数,因此1.15的确定顺序就不存在了。

Real的基本类型是Real,在Delphi7中Real等同于Double,因此建议用DoubleSingle来声明变量,而在过程或函数中需要定义可以传递任意实数的参数时,常使用Extended,因为它的取值范围最大,可以兼容其他所有实数类型。

3、String字符串类型

String类型分为ShortString、AnsiString/LongString、WideString三大类,ShortString在内存中占0..255字节,其中第0字节存储字符串的实际长度,因此一个ShortString类型的变量最多存储255个字符。

AnsiString/LongString/WideString的内存都是动态分配的,最大可至2GB,因此可以近似认为它们是无限长的。AnsiString包含的字符使用单字节存储的,而WideString包含的字符则是用多个字节存储的。在Delphi7中WideString被实现为用2个字节存储一个字符。

PChar并不是Pascal的标准类型,而是为了与操作系统和其他语言兼容而设置的,PChar声明一个以空字符(NULL字符)结尾的字符串指针,更准确的说,这个字符串的字符是Char类型,也就是PChar指向一个Char串。

4、Structured构造类型

Structured类型可以包含多个元素或字段,因而这种类型的变量能够容纳多个值。

Set类型的基本类型可以是EnumeratedSubrange,因此Set变量容纳的实际上是有序值。

Array数组类型包含两种性质,静态数组和动态数组。

Record记录类型,是多个任意元素的集合,其中的元素可以称为记录的字段。

File文件类型用来读写文本,在面向对象编程中,一般使用TFileStream类和一些类的(TStrings、TPicture、TBlobField、TTreeView等)的LoadFromFile、SaveToFile方法来操作文件。

构造类型中还包括Class(类)、Interface(接口)、Class reference(类引用)三种子类型。

5、Pointer指针类型

Pointer指针类型,一个指针占用4字节空间,一个指针就是一个4字节大小的内存块,该内存块的4字节空间用来存储另一块内存区所在的地址,这另一块内存区才是存储实际数据的地方。指针分为无类型指针(Untyped Pointer)和有类型指针(Typed Pointer)。

Procedural过称类型,一种比较特殊的类型,这种类型变量可以存取一个过程或函数。

6、Variant可变类型

可以存储绝大部分不同类型的数据。

Tip

在程序编写过程中,要尽量可能选择简单、轻量级、易懂的数据类型,而非实际需要,不要使用复杂的数据类型或者自定义类型,最简单的才是最美丽的。

抱歉!评论已关闭.