分类 | 运算符 | 操作 | 操作数 | 结果类型 | 范例 |
---|---|---|---|---|---|
算术运算符 | + | 加 | 整数,实数 | 整数,实数 | X + Y |
- | 减 | 整数,实数 | 整数,实数 | Result - 1 | |
* | 乘 | 整数,实数 | 整数,实数 | P * InterestRate | |
/ | 实数除 | 整数,实数 | 实数 | X / 2 | |
div | 整数除 | 整数 | 整数 | Total div UnitSize | |
mod | 取模 | 整数 | 整数 | Y mod 6 | |
+(一元) | 符号等同 | 整数,实数 | 整数,实数 | +7 | |
-(一元) | 符号相反 | 整数,实数 | 整数,实数 | -X | |
布尔运算符 | not | 否定 | 布尔型 | Boolean | not (C in MySet) |
and | 与 | 布尔型 | Boolean | Done and (Total > 0) | |
or | 或 | 布尔型 | Boolean | A or B | |
xor | 异或 | 布尔型 | Boolean | A xor B | |
逻辑(按位)运算符 | not | 按位否定 | 整数 | 整数 | not X |
and | 按位与 | 整数 | 整数 | X and Y | |
or | 按位或 | 整数 | 整数 | X or Y | |
xor | 按位异或 | 整数 | 整数 | X xor Y | |
shl | 按位左移 | 整数 | 整数 | X shl 2 | |
shr | 按位右移 | 整数 | 整数 | Y shr I | |
字符串运算符 | + | 连接 | 字符串、压缩串、字符 | 字符串 | S + '.' |
指针运算符 | + | 指针加 | 字符指针,整数 | 字符指针 | P + I |
- | 指针减 | 字符指针,整数 | 字符指针,整数 | P - Q | |
^ | 指针解除参照 | 指针 | 指针的基类型 | P^ | |
= | 相等 | 指针 | Boolean | P = Q | |
<> | 不等 | 指针 | Boolean | P <> Q | |
集合运算符 | + | 并集 | 集合 | 集合 | Set1 + Set2 |
- | 差集 | 集合 | 集合 | S – T | |
* | 交集 | 集合 | 集合 | S * T | |
<= | 子集 | 集合 | Boolean | Q <= MySet | |
>= | 超集 | 集合 | Boolean | S1 >= S2 | |
= | 相等 | 集合 | Boolean | S2 = MySet | |
<> | 不等 | 集合 | Boolean | MySet <> S1 | |
in | 成员 | 序数,集合 | Boolean | A in Set1 | |
关系运算符 | = | 相等 | 简单类型、类、类引用、接口、串、压缩串 | Boolean | I = Max |
<> | 不等 | 简单类型、类、类引用、接口、串、压缩串 | Boolean | X <> Y | |
< | 小于 | 简单类型、串、压缩串、PChar | Boolean | X < Y | |
> | 大于 | 简单类型、串、压缩串、PChar | Boolean | Len > 0 | |
<= | 小于或等于 | 简单类型、串、压缩串、PChar | Boolean | Cnt <= 1 | |
>= | 大于或等于 | 简单类型、串、压缩串、PChar | Boolean | I >= 1 | |
类运算符 | as | 转换 | 类和类的实例 | ||
is | 判断 | ||||
= | 关系运算符 = 和 <> 也作用于类 | ||||
<> | |||||
地址(@)运算符 | @X | 如果X是一个变量,那么@X返回X的地址。 当编译指示 {$T-} 有效时,@X是Pointer类型; 而在编译指示 {$T+} 状态下时,@X是 ^T 类型,这里的T是X的类型。 | |||
@F | 如果 F 是一个例程(函数或过程),那么@F返回F 的入口点,@F的类型总是Pointer。 |
||||
@类中方法 | 当 @ 适用于定义在类中的方法时,方法标识符必需被类的名称限定。例如: @TMyClass.DoSomething |
分类 | 范围 | 字节 | 备注 | |||
简单类型 | 序数 | 整数 | Integer | -2147483648 .. 2147483647 | 4 | 有符号32位 |
Cardinal | 0 .. 4294967295 | 4 | 无符号32位 | |||
Shortint | -128 .. 127 | 1 | 有符号8位 | |||
Smallint | -32768 .. 32767 | 2 | 有符号16位 | |||
Longint | -2147483648 .. 2147483647 | 4 | 有符号32位 | |||
Int64 | -263 .. 263 | 8 | 有符号64位 | |||
Byte | 0 .. 255 | 1 | 无符号8位 | |||
Word | 0 .. 65535 | 2 | 无符号16位 | |||
Longword | 0 .. 4294967295 | 4 | 无符号32位 | |||
字符 | AnsiChar(Char) | ANSI字符集 | 8位 | |||
WideChar | Unicode字符集 | 16位 | ||||
布尔 | Boolean | False < True Ord(False) = 0 Ord(True) = 1 Succ(False) = True Pred(True) = False | 1 | |||
ByteBool | False <> True Ord(False) = 0 Ord(True) <> 0 Succ(False) = True Pred(False) = True | 1 | ||||
WordBool | 2 | |||||
LongBool | 4 | |||||
枚举 | ||||||
子界 | ||||||
实数 | Real | 5.0×10-324 .. 1.7×10308 | 8 | [精度]15..16 | ||
Real48 | 2.9×10-39 .. 1.7×1038 | 6 | [精度]11..12; 向后兼容 | |||
Single | 1.5×10-45 .. 3.4×1038 | 4 | [精度]7..8 | |||
Double | 5.0×10-324 .. 1.7×10308 | 8 | [精度]15..16 | |||
Extended | 3.6×10-4951 .. 1.1×104932 | 10 | [精度]19..20 | |||
Comp | -263 + 1 .. 263 - 1 | 8 | [精度]19..20 | |||
Currency | -922337203685477.5808 .. 922337203685477.5807 | 8 | [精度]19..20 | |||
字符串 | ShortString | 255个字符 | 2..256B | 向后兼容 | ||
AnsiString | 大约 231 个字符 | 4B..2GB | 8位(ANSI)字符 | |||
WideString | 大约 230 个字符 | 4B..2GB | 多用户服务和 多语言应用程序; 和com定义的BSTR兼容 | |||
其他 | String String[0..255] PChar PAnsiString PWideString | |||||
结构类型 | 集合 | Set | 最多256个元素[0..255] | |||
数组 | 静态数组 | |||||
动态数组 | ||||||
记录 | Record | |||||
文件 | File | |||||
类 | Class | |||||
类引用 | Class reference | |||||
接口 | Interface | |||||
指针类型 | 无类型指针 | Pointer | ||||
有类型指针 | 预定义类型指针 | PAnsiString PString PByteArray PCurrency PDouble PExtended PSingle PInteger POleVariant PShortString PTextBuf PVarRec PVariant PWideString PWordArray | ||||
过程类型 | 程序过程类型 | Procedural | ||||
对象过程类型 | Procedural | |||||
变体类型 | Variant | |||||
OleVariant |