優先級 運算符 名稱或含義 使用形式 結合方向 說明
1 [] 數組下標 數組名[整型表達式] 左到右
() 圓括號 (表達式)/函數名(形參表)
. 成員選擇(對象) 對象.成員名
-> 成員選擇(指針) 對象指針->成員名
2 - 负号運算符 -表達式 右到左 单目運算符
(類型) 強制類型轉換 (數據類型)表達式
++ 自增運算符 ++變量名/變量名++ 单目運算符
-- 自減運算符 --變量名/變量名-- 单目運算符
* 取值運算符 *指針表達式 单目運算符
& 取地址運算符 &左值表達式 单目運算符
! 逻辑非運算符 !表達式 单目運算符
~ 按位取反運算符 ~表達式 单目運算符
sizeof 长度運算符 sizeof表达式/sizeof(類型)
3 / 表達式/表達式 左到右 双目運算符
* 表達式*表達式 双目運算符
% 余數(取模) 整型表達式%整型表達式 双目運算符
4 + 表達式+表達式 左到右 双目運算符
- 表达式-表達式 双目運算符
5 << 左移 表達式<<表達式 左到右 双目運算符
>> 右移 表達式>>表達式 双目運算符
6 > 大于 表達式>表達式 左到右 双目運算符
>= 大于等于 表達式>=表達式 双目運算符
< 小于 表達式<表達式 双目運算符
<= 小于等于 表達式<=表達式 双目運算符
7 == 等于 表達式==表達式 左到右 双目運算符
!= 不等于 表達式!=表達式 双目運算符
8 & 按位與 整型表達式&整型表達式 左到右 双目運算符
9 ^ 按位異或 整型表達式^整型表達式 左到右 双目運算符
10 | 按位或 整型表達式|整型表達式 左到右 双目運算符
11 && 邏輯與 表達式&&表達式 左到右 双目運算符
12 || 邏輯或 表達式||表達式 左到右 双目運算符
13 ?: 条件運算符 表達式1?表達式2:表達式3 右到左 三目運算符
14 = 赋值運算符 變量=表達式 右到左
/= 除後賦值 變量/=表達式
*= 乘後賦值 變量*=表達式
%= 取模後賦值 變量%=表達式
+= 加後賦值 變量+=表達式
-= 減后赋值 變量-=表達式
<<= 左移後賦值 變量<<=表達式
>>= 右移後賦值 變量>>=表達式
&= 按位與后赋值 變量&=表達式
^= 按位異或后赋值 變量^=表達式
|= 按位或後賦值 變量|=表達式
15 , 逗号運算符 表達式,表達式,… 左到右 從左向右順序運算

C#中常用運算符優先級别划分

  1. 单元運算符和括号
  2. 常规算术運算符
  3. 位移運算符
  4. 比较運算符
  5. 逻辑運算符
  6. 各种赋值運算符
  7. 右位(后缀)单元運算符

C#運算符详细說明

  1. 在这一级中,有++、--(做为前缀)、()、+、-(做为单元運算符)、!、~

    这一级中都是单元運算符,除了其中那一对特殊的具有改变任何运算優先級的括号

    这此可以看出,在定义表达式中,那些单元運算符的優先級是很高的,可能是因为它们都直接作用于操作数吧

    只有两个单元運算符的優先級不在第一级中,它们因为特殊的原因出现在了后面

  2. 在常规算术運算符中,有我们经常使用的*、/、%、+、-,因为他们使用得较多,所以也排在较高的位置。

  3. 这一级是两个特殊的位操作符,<< 和 >>,它们是所有二元操作符中除常规運算符外優先級最高的了,可能是因为与比较運算符、逻辑運算符比起来,这一组操作符进行的还是数值的计算

  4. 比较運算符,包括<、>、<=、>=、==、!=,一共六个,这里有一个特点,就小于优先于大于

  5. 逻辑運算符,逻辑運算符原本有四种,但用于单元的“非”運算符排在了前面,所以这里面就只有&、^、|,再加上两个补充的用于提高代码效率的運算符&&、||等共有五个

  6. 赋值運算符,这一级最多,几乎前面出现过的二元運算符,在这里加上个“=”号就成为一个赋值運算符

    首先当然最基本的赋值運算符“=”;然后是常规算术運算符演变来的“*=、/=、%=、+=、-=”,它们的顺序和常规算术符的顺序一样

    然后是位移運算符和逻辑運算符,也按它们演变前的顺序排列,为“<<=、>>=、&=、^=、|=”

    因为比较運算符所产生的结果的数据类型和它的运算数的数据类型不同,所以它们没有相应的赋值運算符

  7. 最后一级,就是那两个最后的单元運算符后缀版的++、--

    它们的出现就是为了做为那两个前缀版的==、--的补充(那两个的優先級太高了,人们需要两个優先級不那么高的)

    以方便设计表达式,所以这两个的優先級当然要排在最后了


C#運算符总结優先級顺序

  • 无论是从上而下,还是从左到右,都是越上和越前面,優先級越高

  • 第一级:++、--(做为前缀)、()、+、-(做为单元運算符时)、!、~

  • 第二級:*、/、%、+、-

  • 第三級:<<、>>位移運算

  • 第四級:<、>、<=、>=、==、!=(邏輯比較)

  • 第五級:&、^、|、&&、||

  • 第六級:=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=

  • 第七級:++、--(做爲後綴)

在線工具導航