C语言运算符优先级
发布时间:2020-12-15 17:33:37 所属栏目:百科 来源:网络整理
导读:一个表达式可以包含多个运算符。在这种情况下,运算符的优先级决定表达式的哪部分被处理为每个运算符的操作数。例如,按照运算规则,表达式中? * 、/、以及 % 的优先级比 + 和 - 高。如下列表达式: a - b * c 相当于 a-(b*c)。如果想让操作数以不同的方
一个表达式可以包含多个运算符。在这种情况下,运算符的优先级决定表达式的哪部分被处理为每个运算符的操作数。例如,按照运算规则,表达式中?*、/、以及 % 的优先级比 + 和 - 高。如下列表达式: a - b * c 相当于 a-(b*c)。如果想让操作数以不同的方式组合在一起,则必须使用括号:(a - b) * c 如果一个表达式中的两个操作数具有相同的优先级,那么它们的结合律(associativity)决定它们的组合方式是从左到右或是从右到左。例如,算术运算符和操作数的组合方式是从左到右,赋值运算符则是从右到左,如表 1 所示。
表 2 列出优先级次序下,所有 C 语言运算符的优先级和结合律。
表 2 中优先级最高的运算符中的最后一个(类型名称){列表} 是 C99 新增加的。 一些运算符记号在表 2 中出现了两次。例如,自增运算符 ++ 和自减运算符 --,在作后缀运算符(如表达式 x++)时,较其用作前缀运算符(如表达式 ++x)时,具有较高的优先级。 +、-、* 和 & 运算符记号不但可以当作一元运算符(unary operator,只需要一个操作数),也可以当作二元运算符(binary operator,需要两个操作数)。例如,* 只有一个操作数的时候,就是间接运算符(indirection operator),而有两个操作数的时候,就是乘号。 在这些例子中,一元运算符比二元运算符具有更高的优先级。例如,表达式 *ptrl**ptr2 等同于表达式(*ptrl)*(*ptr2)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 基于vue-ssr的静态网站生成器VuePress 初体验
- Swift协议函数:返回相同类型的符合类
- BitmapData探究1-获取Image组件的图像数据
- C#工具提示没有出现在“显示”
- Ajax Control Toolkit中CalendarExtender(日期)控件显示中文
- ruby-on-rails – Rails:不同的控制器行为取决于路由
- ruby-on-rails-3 – 如何组织Rails应用程序和多个引擎的开发
- 用TypeScipt和AMD模块化理念实现React官方教程(五)提交和更
- React-Native 写了个 Douban App
- PostgreSQL 9.6.1,9.5.5,9.4.10,9.3.15,9.2.19和9.1.24