JSON在线解析

C#运算符优先级

C#运算符优先级,是描述在计算机运算计算表达式时执交运算的前后次序。 先履行具有较高优先级的运算,然后履行较低优先级的运算。 例如,我们常说的先履行相乘和除,再履行加减运算。

C#运算符详细解释

优先级运算符称号或含义应用情势结合偏向解释
1[]数组下标数组名[整型表达式]左到右 
()圆括号(表达式)/函数名(形参表) 
.成员选择(对象)对象.成员名 
->成员选择(指针)对象指针->成员名 
2-负号运算符-表达式右到左单目运算符
(类型)强迫类型转换(数据类型)表达式 
++自增运算符++变量名/变量名++单目运算符
--自减运算符--变量名/变量名--单目运算符
*取值运算符*指针表达式单目运算符
&取地址运算符&左值表达式单目运算符
!逻辑非运算符!表达式单目运算符
~按位取反运算符~表达式单目运算符
sizeof长度运算符sizeof表达式/sizeof(类型) 
3/表达式/表达式左到右双目运算符
*表达式*表达式双目运算符
%余数(取模)整型表达式%整型表达式双目运算符
4+表达式+表达式左到右双目运算符
-表达式-表达式双目运算符
5<<左移表达式<<表达式左到右双目运算符
>>右移表达式>>表达式双目运算符
6>大年夜于表达式>表达式左到右双目运算符
>=大年夜于等于表达式>=表达式双目运算符
<小于表达式<表达式双目运算符
<=小于等于表达式<=表达式双目运算符
7==等于表达式==表达式左到右双目运算符
!=不等于表达式!=表达式双目运算符
8&按位与整型表达式&整型表达式左到右双目运算符
9^按位异或整型表达式^整型表达式左到右双目运算符
10|按位或整型表达式|整型表达式左到右双目运算符
11&&逻辑与表达式&&表达式左到右双目运算符
12||逻辑或表达式||表达式左到右双目运算符
13?:条件运算符表达式1?表达式2:表达式3右到左三目运算符
14=赋值运算符变量=表达式右到左 
/=除后赋值变量/=表达式 
*=乘后赋值变量*=表达式 
%=取模后赋值变量%=表达式 
+=加后赋值变量+=表达式 
-=减后赋值变量-=表达式 
<<=左移后赋值变量<<=表达式 
>>=右移后赋值变量>>=表达式 
&=按位与后赋值变量&=表达式 
^=按位异或后赋值变量^=表达式 
|=按位或后赋值变量|=表达式 
15,逗号运算符表达式,表达式,…左到右从左向右次序运算

C#运算符优先级举例解释

C#中38个经常使用运算符的优先级的划分和懂得(摘抄)

在学C#中的一些总结,个中关于各级的划分方法、各操作符的优先级的懂得其实不见得精确,只是本身的看法,拿出来与大年夜家分享。

在C#中,一共有38个经常使用的应用符,根据它们所执交运算的特点和它们的优先级,为了便于记忆,我将它们归为七个等级:

  1. 单位运算符和括号。
  2. 惯例算术运算符。
  3. 位移运算符。
  4. 比较运算符。
  5. 逻辑运算符。
  6. 各类赋值运算符。
  7. 右位(后缀)单位运算符。

C#运算符详细解释

  1. 在这一级中,有++、--(做为前缀)、()、+、-(做为单位运算符)、!、~。这一级中都是单位运算符,除个中那一对特别的具有改变任何运算优先级的括号。这此可以看出,在定义表达式中,那些单位运算符的优先级是很高的,能够是由于它们都直接感化于操作数吧。只要两个单位运算符的优先级不在第一级中,它们由于特别的缘由涌如今了前面。

  2. 在惯例算术运算符中,有我们常常应用的*、/、%、+、-,由于他们应用得较多,所以也排在较高的地位。

  3. 这一级是两个特别的位操作符,<< 和 >>,它们是一切二元操作符中除惯例运算符外优先级最高的了,能够是由于与比较运算符、逻辑运算符比起来,这一组操作符停止的照样数值的计算。

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

  5. 逻辑运算符,逻辑运算符本来有四种,但用于单位的“非”运算符排在了前面,所以这外面就只要&、^、|,再加上两个弥补的用于进步代码效力的运算符&&、||等共有五个。

  6. 赋值运算符,这一级最多,简直前面出现过的二元运算符,在这里加上个“=”号就成为一个赋值运算符。起首固然最根本的赋值运算符“=”;然后是惯例算术运算符演变来的“*=、/=、%=、+=、-=”,它们的次序和惯例算术符的次序一样;然后是位移运算符和逻辑运算符,也按它们演变前的次序分列,为“<<=、>>=、&=、^=、|=”。由于比较运算符所产生的成果的数据类型和它的运算数的数据类型不合,所以它们没有照应的赋值运算符。

  7. 最后一级,就是那两个最后的单位运算符后缀版的++、--。它们的出现就是为了做为那两个前缀版的==、--的弥补(那两个的优先级太高了,人们须要两个优先级不那么高的),以便利设计表达式,所以这两个的优先级固然要排在最后了。

C#运算符总结优先级次序

不管是从上而下,照样从左到右,都是越上和越前面,优先级越高。

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

  • 第二级:*、/、%、+、-。

  • 第三级:<<、>>位移运算。

  • 第四级:<、>、<=、>=、==、!=。(逻辑比较)

  • 第五级:&、^、|、&&、||。

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

  • 第七级:++、--(做为后缀)。