C 學習 運算子

2021-08-07 05:26:43 字數 4456 閱讀 5185

c# 提供了許多運算子,這些運算子是指定要在表示式中執行哪些操作(數學、索引、函式呼叫等等)的符號。 可以過載許多應用於使用者定義型別的運算子,從而更改其含義。

對整數型別執行的運算(如==!=<>&|)通常也可對列舉 (enum) 型別執行。

以下章節按最高優先順序到最低優先順序的順序列示 c# 運算子。 各章節內運算子的優先順序相同。

以下是具有最高優先順序的運算子。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

x.y:成員訪問。

x?.y:null 條件成員訪問。 如果左運算元為null,則返回null

x?[y]:null 條件索引訪問。 如果左運算元為null,則返回null

f(x):函式呼叫。

a[x]:聚合物件索引。

x++:字尾遞增。 先返回 x 值,然後用加 1(通常加整數 1)後的 x 值更新儲存位置。

x--:字尾遞減。 先返回 x 值,然後用減 1(通常減整數 1)後的 x 值更新儲存位置。

new:型別例項化。

typeof:返回表示運算元的 system.type 物件。

checked:對整數運算啟用溢位檢查。

unchecked:對整數運算禁用溢位檢查。 這是預設的編譯器行為。

default(t):返回型別 t 的預設初始值,引用型別的預設初始值為null,數值型別的預設初始值為 0,結構型別成員的預設初始填充值為 0/null

delegate:宣告並返回委託例項。

sizeof:返回型別運算元的大小(以位元組為單位)。

->:指標取消引用與成員訪問相結合。

這些運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

+x:返回 x 的值。

-x:數值取反。

!x:邏輯取反。

~x:按位求補。

++x:字首遞增。 先用加 1(通常加整數 1)後的 x 值更新儲存位置,然後返回 x 值。

--x:字首遞減。 先用減 1(通常減整數 1)後的 x 值更新儲存位置,然後返回 x 值。

(t)x:型別顯式轉換。

await:等待task

&x:位址。

*x:取消引用。

這些運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

x * y:乘法。

x / y:除法。 如果運算元均為整數,則結果為整數,捨去小數(例如,-7 / 2 is -3)。

x % y:取模。 如果運算元均為整數,則返回 x 除以 y 後的餘數。 如果q = x / yr = x % y,則x = q * y + r

這些運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

x + y:加法。

x:y:減法。

這些運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

x << y:左移位,右側用 0 填充。

x >> y:右移位。 如果左運算元是intlong,則左位數補符號位。 如果左運算元是uintulong,則左位數補零。

這些運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

x < y:小於(如果 x 小於 y,則為 true)。

x > y:大於(如果 x 大於 y,則為 true)。

x <= y:小於或等於。

x >= y:大於或等於。

is:型別相容性。 如果求值後的左運算元可以轉換為右運算元中指定的型別(靜態型別),則返回 true。

as:型別轉換。 返回左運算元並轉換為右運算元中指定的型別(靜態型別),但as返回null,其中(t)x會引發異常。

這些運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

x == y:相等。 預設情況下,對於string以外的引用型別,此運算子返回引用相等(標識測試)。 但是,型別可以過載==,因此,如果你想測試標識,最好對object使用referenceequals方法。

x != y:不相等。 請參閱有關==的注釋。 如果某個型別過載==,則它必須過載!=

此運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊該運算子轉到包含示例的詳細頁面。

x & y:邏輯或位 and。 與整數型別一起使用,並且通常允許enum型別。

此運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊該運算子轉到包含示例的詳細頁面。

x ^ y:邏輯或位 xor。 通常可以將此運算子與整數型別和enum型別一起使用。

此運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊該運算子轉到包含示例的詳細頁面。

x | y:邏輯或位 or。 與整數型別一起使用,並且通常允許enum型別。

此運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊該運算子轉到包含示例的詳細頁面。

x && y:邏輯 and。 如果第乙個運算元為 false,則 c# 不對第二個運算元求值。

此運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊該運算子轉到包含示例的詳細頁面。

x || y:邏輯 or。 如果第乙個運算元為 true,則 c# 不對第二個運算元求值。

此運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊該運算子轉到包含示例的詳細頁面。

x ?? y:如果不為null,則返回x;否則返回y

此運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊該運算子轉到包含示例的詳細頁面。

t ? x : y:如果測試t為 true,則計算並返回x;否則,計算並返回y

這些運算子的優先順序比下一章節高,比上一章節低。 請注意,你可以單擊運算子轉到包含示例的詳細頁面。

x = y:賦值。

x += y:遞增。x值加y值,結果儲存在x中,並返回新值。 如果x指定event,則y必須是 c# 作為事件處理程式新增的相應函式。

x -= y:遞減。x值減y值,結果儲存在x中,並返回新值。 如果x指定event,則y必須是 c# 作為事件處理程式刪除的相應函式

x *= y:乘法賦值。x值乘以y值,結果儲存在x中,並返回新值。

x /= y:除法賦值。x值除以y值,結果儲存在x中,並返回新值。

x %= y:取模賦值。x值除以y值,餘數儲存在x中,並返回新值。

x &= y:and 賦值。y值和x值相與,結果儲存在x中,並返回新值。

x |= y:or 賦值。y值和x值相或,結果儲存在x中,並返回新值。

x ^= y:xor 賦值。y值和x值相異或,結果儲存在x中,並返回新值。

x <<= y:左移賦值。 將x值向左移動y位,結果儲存在x中,並返回新值。

x >>= y:右移賦值。 將x值向右移動y位,結果儲存在x中,並返回新值。

=>:lambda 宣告。

算術運算子(+、-、*、/)的計算結果可能會超出所涉數值型別的可取值範圍。 詳細資訊應參考特定運算子的相關章節,而一般情況下:

C語言基礎學習運算子 關係運算子

比較大小 首先,我們得先了解一下布林型別。c語言的c99標準支援布林型別,關鍵字為 bool,用於表示邏輯值true與false。c語言用值1表示true,用值0表示false。因此布林型別實際上是一種整數型別。程式常常使用含有關係運算子的表示式進行分支和迴圈操作。我們將在分支和迴圈的章節中具體學習...

繼續學習C 運算子

兩整數相除,結果為整數,有一方是實數形式,結果保留小數 求餘運算子要求兩側均為整型資料,數值取餘,符號與被除數一致 恩,問這個問題的人太多了,懶得繼續回答,直接貼上來自己看。優先順序運算子 名稱或含義 使用形式 結合方向說明1 陣列下標 陣列名 常量表示式 左到右 圓括號 表示式 函式名 形參表 成...

C 學習 運算子過載

同函式過載一樣,算數操作符過載能夠帶給我們操作不同資料型別的方法,包括你自己定義的類。我們日常最常用的就是加 減 乘 除,而它們的性質又有些相似。所以,它們的運算子實現方式也有些相似。共有三種實現方式 首先,我們介紹怎樣使用友鄰函式定義操作符過載。看下面的 include class cents 使...