關於運算子

2021-09-05 18:08:55 字數 1394 閱讀 5885

運算子包括:@  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 自增 自減運算子不參與賦值時,前置和後置一樣 賦值時 後置運算子 先賦值,後運算 前置運算子 先運算,後賦值 注意 當 運算子兩邊有乙個運算元為字串...

關於 和 運算子

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

關於運算子過載

之前看 effective c 的時候,對這一部分印象比較深刻,雖然讀的時候有寫筆記,但是現在還是寫下來我對這一部分理解。詳細的內容可以看條款19 分清成員函式,非成員函式和友元。條款19的結論如下 只有在下列情況下,讓函式f成為類c的非成員函式。其餘情況,f都宣告為c的成員函式。1 operato...