首页 > 编程语言 >C#运算符执行顺序对照表

C#运算符执行顺序对照表

时间:2023-01-15 11:00:57浏览次数:53  
标签:左到 优先级 C# 对照表 运算符 双目 表达式 赋值


C#运算符执行顺序对照表_双目运算符

C#运算符执行顺序对照表:在线查看C#运算符执行优先级别 ​​窍门: Ctrl+F 快速查找​


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

优先级

运算符

名称或含义

使用形式

结合方向

说明

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#运算符总结优先级顺序

  • 无论是从上而下,还是从左到右,都是越上和越前面,优先级越高
  • 第一级:++、--(做为前缀)、()、+、-(做为单元运算符时)、!、~
  • 第二级:*、/、%、+、-
  • 第三级:<<、>>位移运算
  • 第四级:<、>、<=、>=、==、!=(逻辑比较)
  • 第五级:&、^、|、&&、||
  • 第六级:=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=
  • 第七级:++、--(做为后缀)
     

标签:左到,优先级,C#,对照表,运算符,双目,表达式,赋值
From: https://blog.51cto.com/10zhancom/6008382

相关文章

  • Javascript事件与功能说明大全
    Javascript事件与功能说明大全 ​​窍门:Ctrl+F快速查找​​总结了Javascript常用的各种事件,包括鼠标事件、加载事件、滚动事件、表单事件、编辑事件、数据绑定事件等下表......
  • 常用PC,移动浏览器User-Agent大全
    常用PC,移动浏览器User-Agent大全,提供PC浏览器user-agent,Android手机浏览器user-agent大全PC端User-AgentIE9.0IE8.0IE7.0IE6.0Firefox4.0.1–MACFirefox4.0.1–Win......
  • PyTorch图像分类打卡
    本次学习的基本情况概述学习流程参考内容同济子豪兄的开源文档我的打卡内容......
  • 虚拟机通过virsh qemu-monitor-command在线备份
    查看存储设备名#通过qmp查看virshqemu-monitor-commandDOMAIN--pretty'{"execute":"query-block"}'#通过hmp查看virshqemu-monitor-commandDOMAIN--hmp'......
  • flex 4.6 自定义Datagrid添加checkbox\图片等功能
    flex4.6中的 spark 的Datagrid相比于之前的mx有很大不同实现自定义<s:itemRenderer>详见代码~<s:DataGridid="dg"left="14"right="10"top="35"bottom="9"d......
  • 关于Flex Cairngorm中command层与View层的通信及耦合度高的问题的解决
    在Cairngorm框架中,view层发送自定义事件,command层再根据事件做相应的处理,View层中的数据通过绑定ModelLocator中的属性实现自动更新。现有的问题是,有时除了更新数据意外,用户......
  • oracle数据库坏块恢复—存在rman备份
    文档课题:oracle数据库坏块恢复—存在rman备份.数据库:oracle19.12多租户1、坏块查询SQL>setnumw20SQL>setline200SQL>select*fromv$database_block_corruption......
  • 使用ddddocr识别验证码
    importurllib3importddddocrcode_url="http://www.xxxx.com/code.php"headers="{你的header是内容}"http=urllib3.PoolManager()resq=http.request('GET',cod......
  • vue-cli脚手架3.0以上切换到3.0以下版本
    vue-cli脚手架3.0前后版本切换3.0以上—>3.0以下:vue-V //查询版本号npmuninstall-g@vue/cli//卸载npminstall-gvue-cli//安装2.9.6npminpm-gnpmivu......
  • JavaScript while 语句
    while语句可以在某个条件表达式为真的前提下,循环执行指定的一段代码,直到那个表达式不为真时结束循环。——MDNwhile语句也是一种循环语句,也称while循环。while循环接......