分类 |
运算符 |
操作 |
操作数 |
结果类型 |
范例 |
算术运算符 |
+ |
加 |
整数,实数 |
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 |
与 |
Done and (Total > 0) |
or |
或 |
A or B |
xor |
异或 |
A xor B |
逻辑(按位)运算符 |
按位否定 |
not X |
按位与 |
X and Y |
按位或 |
X or Y |
按位异或 |
X xor Y |
shl |
按位左移 |
X shl 2 |
shr |
按位右移 |
Y shr I |
字符串运算符 |
连接 |
字符串、压缩串、字符 |
字符串 |
S + '.' |
指针运算符 |
指针加 |
字符指针,整数 |
字符指针 |
P + I |
指针减 |
P - Q |
^ |
指针解除参照 |
指针 |
指针的基类型 |
P^ |
= |
相等 |
P = Q |
<> |
不等 |
P <> Q |
集合运算符 |
并集 |
集合 |
Set1 + Set2 |
差集 |
S – T |
交集 |
S * T |
<= |
子集 |
Q <= MySet |
>= |
超集 |
S1 >= S2 |
S2 = MySet |
MySet <> S1 |
in |
成员 |
序数,集合 |
A in Set1 |
关系运算符 |
简单类型、类、类引用、接口、串、压缩串 |
I = Max |
X <> Y |
< |
小于 |
简单类型、串、压缩串、PChar |
X < Y |
> |
大于 |
Len > 0 |
小于或等于 |
Cnt <= 1 |
大于或等于 |
I >= 1 |
类运算符 |
as |
转换 |
类和类的实例 |
? |
? |
is |
判断 |
? |
关系运算符 = 和 <> 也作用于类 |
? |
地址(@)运算符 |
@X |
如果X是一个变量,那么@X返回X的地址。 当编译指示 {$T-} 有效时,@X是Pointer类型;? 而在编译指示 {$T+} 状态下时,@X是 ^T 类型,这里的T是X的类型。 |
@F |
如果 F 是一个例程(函数或过程),那么@F返回 F 的入口点,@F的类型总是Pointer。 |
@类中方法 |
当 @ 适用于定义在类中的方法时,方法标识符必需被类的名称限定。例如: @TMyClass.DoSomething
|
^:???
??^type?表示指向这种类型的指针???
??point^?返回指针指向的变量的值???
两个用法
概述: ^: 指针 @: 取址 #: 十进制符 $: 十六进制符 @:取址运算符; var int:integer; p:^integer; begin new(P); int:=24; p:=@int; dispose(P); end; ^:指针的引用解析操作符; var pint:^integer; begin new(pint); showmessage(inttohex(integer(@pint),8)); pint^:=$ff; showmessage(inttohex(pint^,4)); end; #:ASCII码值表示符; const tab_key=#9;//TAB键的ASCII值 符号 ^ 有两种用途,当它出现在类型标识符之前,如^typeName,表示一个类型,该类型表示指向typeName类型变量的指针;当它出现在指针变量之后,如pointer^,该符号对指针解除参照,也就是说,返回存储在内存地址(该地址保存在指针中)的值指针,指向的数据. var I: Integer; PI: ^Integer; begin I := 10 PI := @I;; PI^ := 20; I := PI^; end; 取指针的方法,比如y:=p^; 就是指为Y赋值指针P