1樓:繁星滿天
c和c++開發人員應很熟悉大多數c#運算子,這裡為新程式設計師和vb開發人員介紹最重要的運算子,並介紹c#中的一些新變化。
c#支援表5-1所示的運算子,其中有4個運算子(sizeof、*、–>、&)只能用於不安全的**(這些**繞過了c#型別安全性的檢查),這些不安全的**見第7章的討論。
表 5-1
類 別
運 算 符
算術運算子
+ – * / %
邏輯運算子
& | ^ ~ && || !
字串連線運算子
+增量和減量運算子
++ – –
移位運算子
<< >>
比較運算子
== != < > <= >=
賦值運算子
= += –= *= /= %= &= |= ^= <<= >>=
成員訪問運算子(用於物件和結構)
.索引運算子(用於陣列和索引器)
資料型別轉換運算子
()條件運算子 (三元運算子)
?:委託連線和刪除運算子(見第6章)
+ –物件建立運算子
new型別資訊運算子
sizeof (只用於不安全的**) is typeof as
類 別
運 算 符
溢位異常控制運算子
checked unchecked
間接定址運算子
* –> & (只用於不安全**)
名稱空間別名限定符(見第2章)
::空接合運算子
??使用c#運算子的一個最大缺點是,與c風格的語言一樣,賦值(=)和比較(==)運算使用不同的運算子。例如,下述語句表示「x等於3」:
x = 3;
如果要比較x和另一個值,就需要使用兩個等號(==):
if (x == 3)
c#非常嚴格的型別安全規則防止出現常見的c#錯誤,也就是在邏輯語句中使用賦值運算子代替比較運算子。在c#中,下述語句會產生一個編譯錯誤:
if (x = 3)
習慣使用巨集字元&來連線字串的vb程式設計師必須改變這個習慣。在c#中,使用加號+連線字串,而&表示兩個不同整數值的按位and運算。| 則在兩個整數之間執行按位or運算。
vb程式設計師可能還沒有使用過%(取模)運算子,它返回除運算的餘數,例如,如果x等於7,則x% 5會返回2。
在c#中很少會用到指標,因此也很少會用到間接定址運算子(–>)。使用它們的惟一場合是在不安全的**塊中,因為只有在此c#才允許使用指標。指標和不安全的**見第7章。
5.1.1 運算子的簡化操作
表5-2列出了c#中的全部簡化賦值運算子。
表 5-2
運算子的簡化操作
等 價 於
x++, ++x
x = x + 1
x– –,– –x
x = x – 1
x+= y
x = x + y
x–= y
x = x – y
x *= y
x = x * y
x /= y
x = x / y
x %= y
x = x % y
x >>= y
x = x >> y
x <<= y
x = x << y
運算子的簡化操作
等 價 於
x &= y
x = x & y
x |= y
x = x | y
x ^= y
x = x ^ y
為什麼用兩個例子來說明++增量和– –減量運算子?把運算子放在表示式的前面稱為前置,把運算子放在表示式的後面稱為後置。它們的執行方式有所不同。
增量或減量運算子可以作用於整個表示式,也可以作用於表示式的內部。當x++和++x單獨佔一行時,它們的作用是相同的,對應於語句x = x + 1。但當它們用於表示式內部時,把運算子放在前面(++x)會在計算表示式之前遞增x,換言之,遞增了x後,在表示式中使用新值進行計算。
而把運算子放在後面(x++)會在計算表示式之後遞增x—— 使用原來的值計算表示式。
c語言無符號有符號變數輸出問題,C語言程式設計有符號和無符號整型變數顯示問題
首先 0xe0 十進位制是 14 16 224 你用有符號的char 儲存其實是儲存了 224 256 32 x 輸出的是十六進位制數 其實是 32的十六進位制 d 其實就是輸出 32 第三個是有符號 就是224 了 挺有意思的題目。逐條解釋吧。首先要明白char是按一個位元組儲存的,int是按4個...
C中符號的作用,C中符號是什麼作用
c 中的域區分符號 雙冒號 作用 a.標識作用域的級別 b.標識成員屬於哪個類c.限定成員的作用範圍 d.指出作用域的範圍作用域符號 的前面一般是類名稱,後面一般是該類的成員名稱,c 為例避免不同的類有名稱相同的成員而採用作用域的方式進行區分 如 a,b表示兩個類,在a,b中都有成員member。那...
c中怎麼輸出符號,C 中怎麼輸出符號「 」
加上轉義字元 就能輸出符號 如printf c user my 輸出結果為c user my 以下是一些常用的轉義字元 a 響鈴 bel 7 b 退格 bs 將當前位置移到前一列 8 f 換頁 ff 將當前位置移到下頁開頭 12 n 換行 lf 將當前位置移到下一行開頭 10 r 回車 cr 將當前...