黃聰 關於運算子

2021-09-08 07:27:55 字數 1612 閱讀 1962

運算子包括:

@ not ^ * / div mod and shl shr as + - or xor = > < <> <= >= in is

其中 @ not ^ 是一元運算子; + - 有時是一元,有時是二元; 其他都是二元運算子.

一元運算子在運算數的前面, ^ 例外,也可以在後面,如: p^; 二元運算子在運算數中間.

運算子的行為隨運算數的型別而變,譬如: not , 面對整數是對位求反; 面對布林是邏輯非運算.

除了 ^ is in,其它運算可應用在variant(變體型別)上.

算術運算子:

+ - * / div mod

布林運算子:

not and or xor

位運算子:

not and or xor shl shr

x shl y = x * 2^y

s shr y = x / 2^y

如果x是乙個integer, 那麼 x shl 40 = x shl 8, 因為integer的大小是32位.

字串運算子:

+指標運算子:

+ - ^ = <>

+ - 一般只對字元指標; 無型別指標(pointer)在 ^ 前必須進行型別轉換.

集合運算子:

+ - * <= >= = <> in

+(並集)

-(差集)

*(交集)

<=(子集)

>=(超集)

關係運算子:

= <> < > <= >=

兩個運算數必須型別一直(整數和實數除外);

對字元和字串,是比較每個字元在字符集中的順序;

其中 = <> <= >= 可用於集合;

= <> 可用於指標和類與型別;

< > <= >= 可用於pchar.

類運算子:

as in

as也用於介面;

關係運算子 = <> 也用於型別.

@運算子:

@@返回變數/函式/過程或方法的位址,就是指向運算數的指標;

(編譯器預設)時,@x返回通用指標; @x返回x的型別指標;

@f(f代表乙個過程或方法),返回f的入口點,@f總是pointer;

要獲取類的方法的指標,必須用類名來限定方法: @tmycalss.method

運算子優先順序:

@ not

* / div mod and shl shr as

+ - or xor

= <> < > <= >= in is

另外:

is比較符是用在物件之間; 其他型別之間的比較用 = .

inc/dec 分別類似其他語言中的++/--, 如:

inc(i); dec(i); inc(i,3); dec(i,3);

關於運算子

運算子 根據運算元的個數將運算子分為 一元運算子 二元運算子 三元運算子 根據功能可以分為如下 1 算術運算子 自增運算子 自增1 自減運算子 自減1 自增 自減運算子不參與賦值時,前置和後置一樣 賦值時 後置運算子 先賦值,後運算 前置運算子 先運算,後賦值 注意 當 運算子兩邊有乙個運算元為字串...

關於運算子

運算子包括 not div mod and shl shr as or xor in is 其中 not 是一元運算子 有時是一元,有時是二元 其他都是二元運算子.一元運算子在運算數的前面,例外,也可以在後面,如 p 二元運算子在運算數中間.運算子的行為隨運算數的型別而變,譬如 not 面對整數是對...

關於 和 運算子

在c c 論團上總是隔一段時間就會出現問 自增 自減 運算子的,這裡做個解釋 i 使用i的值之前,先使i的值加1 i 使用i的值之前,先使i的值減1 i 使用i的值之後,使i的的值加1 i 使用i的值之後,使i的的值減1 自增運算子和自減運算子的特殊地方也就在這 既可以做字首運算子,也可以做字尾運算...