表1 显示了 C#运算符的优先级,其中顶部的运算符有最高的优先级(即在包

含多个运算符的表达式中,最先计算该运算符)。

除了运算符优先级,对于二元运算符,需要注意运算符是从左向右还是从右向左计算。除了少数运算符,所有的二元运算符都是左关联的。例如:

x + y + z

就等于:

(x + y) + z

需要先注意运算符的优先级,再考虑其关联性。在以下表达式中,先计算 y 和 z 相乘,再把计算的结果分配给 x,因为乘法的优先级高于加法:

x + y * z

关联性的重要例外是赋值运算符,它们是右关联。下面的表达式从右向左计算:

x = y = z

因为存在右关联性,所有变量 x、y、z 的值都是 3,且该运算符是从右向左计算的。如果这个运算符是从左向右计算,就不会是这种情况:

int z = 3;

int y = 2;

int x = 1;

x = y = z;

一个重要的、可能误导的右关联运算符是条件运算符。表达式

a ? b: c ? d: e

等于:

a = b: (c ? d: e)

这是因为该运算符是右关联的。

注意

在复杂的表达式中,应避免利用运算符优先级来生成正确的结果。使用圆括号指定运算符的执行顺序,可以使代码更整洁,避免出现潜在的冲突。

往期推荐

  • C# 迭代器

  • C# 执行 SQL 语句

  • C# 连接数据库

  • C# 接口的实现与继承

  • C# 泛型的使用

Love life,love yourself

关注小编不迷路呦~

C# 运算符的优先级和关联性相关推荐

  1. VC++运算符与优先级

    C++的优先级 优先级    操作符        结合性 01: ::            左 02: . -> [] ()     左 03: ++ -- ~ ! - + & * ...

  2. C语言语法之运算符及优先级

    注:该内容整理自以下链接. http://blog.csdn.net/huangblog/article/details/8271791 表:C语言运算符及优先级 优先级 运算符 名称或含义 使用形式 ...

  3. (4)javascript的运算符以及运算符的优先级

    运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为算术运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符等. ...

  4. 运算符中,优先级高低总结。

    运算符中,优先级高低总结.

  5. 判断一个整数是否是水仙花数 || 编写程序,根据输入的月份和年份,求出该月的天数(1-12)|| 运算符的优先级问题 ||输出小写的a-z以及大写的Z—A||求出1-1/2+1/3-1/4…..1/

    判断一个整数是否是水仙花数,所谓水仙花数是指一个3位数,         其各个位上数字立方和等于其本身.例如: 153 = 1*1*1 + 5*5*5 + 3*3*3                 ...

  6. c++自底向上算符优先分析_c语言运算符的优先级

    点击上方关注我们获取更多 运算符的优先级&结合性 当c语言出现表达式时,表达式的运算结果就会和运算符的优先级有关,优先级高的先运算.优先级相同时,根据运算符的结合性,左结合的运算符先算左边,右 ...

  7. 15、MySQL运算符的优先级

    运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级. 优先级由低到高排列 运算符 1 =(赋值运算).:= 2 II.OR 3 XOR 4 &a ...

  8. 运算符的优先级和实际操作

    运算符的优先级 运算符实际操作

  9. 说说C语言运算符的“优先级”与“结合性”

    本文链接:https://blog.csdn.net/steedhorse/article/details/5903974 论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或 ...

最新文章

  1. js进阶课程 12-9 jquery的事件对象event的方法有哪些?
  2. 设计微服务架构需要掌握的基础知识
  3. Cpp 对象模型探索 / 父类和子类调用构造函数和析构函数的顺序
  4. Binary Tree Non-recursive Traversal
  5. leetcode--207. 课程表
  6. TensorFlow 2.X中的动手NLP深度学习模型准备
  7. 输入三个数,按照由大到小的顺序输出
  8. [0716] Jsoi B Rsss
  9. Python中的reshape()
  10. PAT (Top Level) Practise 1008 Airline Routes(Tarjan模版题)
  11. java学习过程记录
  12. 1.2、安装Django-1.5.1及所需要的Python2.74环境
  13. 会java c php三种语言_php java net三种语言的区别
  14. CentOS “libc.so.6: version ‘GLIBC_2.14‘ not found“解决方法,同理‘GLIBC_2.15‘ not found“
  15. MCSE 2012之应用程序控制策略AppLocker
  16. Win10安装YOLOv3.0
  17. 力扣刷题之峰与谷(python)
  18. 详解多级目标检测体系结构Cascade RCNN
  19. 用 Python 将 matplotlib 图表集成到 PDF 中
  20. 力扣 25. K 个一组翻转链表

热门文章

  1. Fragment 键盘弹出方式设置
  2. 类和类之间的关系解析-1
  3. 世界十大无法科学解释灵异事件(进来发表自己看发)
  4. 本地打开extjs api docs 的方法
  5. 加密文件忘记密码怎么解密_MyBatis 配置文件 用户密码加密存储
  6. 高精度(压位+判负数+加减乘+读写)
  7. vue 开发环境搭建
  8. java虚拟机之内存分配
  9. 实现简单的shell sed替换功能
  10. TypeError: pyqtSignal must be bound to a QObject