Delphi学习笔记三 运算符

Delphi的运算符分为:@, not, and ^的一元运算符;*, /, div, mod, and, shl, shr, as, +, -, or, xor, =, >, <, <>, <=, >=, in, and is为二元运算符

一、赋值运算符

对于Pascal的新手来说,Delphi的赋值运算符和其它常用编程语言的赋值运算符不大一样,需要用:=来表示。例如:

二、比较运算符

对于Object Pascal来说,用=运算符来对两个表达式或两个值进行逻辑比较运算;用<>表示不等于运算符,这和其它语言用==、!=来表示有比较大的区别,新手比较容易搞错。

三、逻辑表达式

Pascal用and和or (这一点与python一样)作为逻辑与和逻辑或的运算符(C中使用&,|,!),用not()作为逻辑非的运算符。例如:

if A and B then   //逻辑与  
while A or B do  //逻辑或  
if not A then      //逻辑非  
A xor B              //逻辑异或  
A shl B              //A的二进制向左移动B位,尾数补零  
A shr B              //A的二进制向右移动B位,首部补1  

四、算术运算符

这里需要注意的是,在Pascal中,特意定义了针对整数除的运算符——div。在两个整数向楚时,自动截取余数取整;mod取余。主要使用在对整数操作中。x mod y = x - (x div y) * y;一个运行时错误是发生在当y为0时,对X/Y、X div Y、X mod Y的操作中。

五、位运算

在Pascal中的左移和右移是以shl和shr来表示的。

六、加减运算符

在Pascal中,提供了Inc()和Dec()来执行其它语言中++和--的操作。例如

Inc(variable);  //variable ++  
Dec(variable); //variable --  
Inc(variable,3);  //variable+3  
Dec(variable,3); //variable-3  

七、指针运算符

其中,关系运算符中的<, >, <=, and >=可以用来操作“PChar”、“PWideChar”类型。

+:将指针指向的地址增加偏移量;

-:将指针指向的地址减去偏移量;

^:1.取指针所指向地址中的内容(位于指针后);2.定义基类型的指针(位于基类型前面)

=:判断两个指针是否指向同一地址;

<>:判断两个指针是否指向不同地址;

如果P=Q为true,则表示P、Q指向同一个地址;+,-操作符用来增加或减少一个字符指针的偏移量。

八、集合运算符

+:集合并;

-:集合差;

*:集合交;

<=:左边集合是否包含于右边集合;

>=:左边集合是否包含右边集合;

=:左边集合是否等于右边集合;

<>:左边集合是否不等于右边集合;

In:左边集合是否与右边集合有从属关系;

例如:O in X+Y 相当于O在X或者Y中;O in X-Y相当于O只在X并不在Y中;O in X *Y相当于包含在X和Y中;X<=Y为真表示X的所有元素都包含在Y 内;O in S表示O是S的一个元素;


九、@运算符

@运算符返回一个变量、过程、方法或函数的地址。在用于方法时,必须用@TMyClass.DoSomething。

十三、类运算符

类运算符包括as 和 is。

十五、变量类型转换

type Func = function(X: Integer): Integer;  
var  
    F: Func;  
    P: Pointer;  
    N: Integer;  

你可以进行以下操作


F := Func(P);           { Assign procedural value in P to F }  
Func(P) := F;           { Assign procedural value in F to P }  
@F := P;                { Assign pointer value in P to F }  
P := @F;                { Assign pointer value in F to P }  
N := F(N);              { Call function via F }  
N := Func(P)(N);        { Call function via P }  





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值