运算符优先级是什么

小白 QA 2020-04-13 11:45:21 阅读(...)

表达式中可能包含多个有不同运算符连接起来、具有不同数据类型的数据对象;表达式有多种运算,不同结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,须按一定顺序结合,才能保证运算的合理性和结果的正确性、唯一性。

在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。

运算符优先级是什么

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。

简介

每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。各种运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。

优先级与运算符

优先级

优先级与求值顺序无关。如 a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号。

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7 等价于 (1 << (3 + 2))&7.

逻辑运算最后结合。

运算符

运算符是一种特殊的函数,它们具有一个或多个操作数并返回相应的值。操作数是被运算符用作输入的值,通常是字面值、变量或表达式。运算符可以是一元、二元或三元的,一元运算符有 1 个操作数,二元运算符有 2 个操作数,三元运算符有 3 个操作数。

结合性

当一个运算对象两侧的运算符优先级别相同时,则按运算符的结合性来确定表达式的运算顺序。关于结合性的概念在其他高级语言中是没有的,这是 C 语言的特点之一。在标准 C 语言的文档里,对操作符的结合性并没有做出非常清楚的解释。一个满分的回答是:它是仲裁者,在几个操作符具有相同的优先级时决定先执行哪一个。C 语言也将 34 种运算符规定了不同的结合性。大多数运算符结合方向是“自左至右”,即:先左后右,也叫“左结合性”,例如 a-b + c,表达式中有-和+两种运算符,且优先级相同,按先左后右结合方向,先围绕减号结合,执行 a-b 的运算,再围绕加号结合,完成运算(a-b) + c。除了左结合性外,C 语言有三类运算符的结合方向是从右至左,也叫“右结合性”,即:单目运算符、条件运算符、以及赋值运算符。着重强调一点,无论是左结合性,还是右结合性,是针对两个相邻的优先级相同的运行符而言(不是表达中的运算对象),运算符是决定左右的基准点,先以前面的运算符(即位置上处于左边的运算符)构造运算,就是左结合,反之,就是右结合。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • MX 记录

    MX记录优先级是什么

    MX(Mail Exchanger)记录,是邮件交换记录,优先级的值越小,优先级越高。同一个域名的有两条不同优先级的MX纪录,通常是用优先级高的。
  • 作业调度 job scheduling

    作业调度是什么

    作业调度,也称为批处理调度,是分配系统资源以控制无人值守后台程序执行的过程。调度程序决定在什么时间执行哪些作业,以及完成作业所需的中央处理单元 (CPU) 资源。它确保所有工作都按照设定的优先级完成。
  • 工作负载容量 Workload capacity

    工作负载容量是什么

    工作负载容量是衡量员工或团队在给定时间段内可以承担的任务、活动或项目。它考虑了任务中子任务的数量、它们的复杂性以及完成它们所需的时间。分析工作负载容量有助于企业了解执行任务和流程的范围、重要性和优先级,以提高生产力,同时保持高效和有效。
  • 资源分配 resource allocation

    资源分配是什么

    资源分配是利用可用的公司资源并战略性地分配它们以满足多种用途和目标的过程。这包括分配项目任务、观察工作负载、跟踪和适应意外变化、更新优先级、保持在预算范围内、确保项目时间的准确性等等。 
  • 待办事项清单 to-do list

    待办事项清单是什么

    待办事项列表是个人需要完成或完成的任务列表。任务通常按优先级或重要性排序。待办事项清单可以写在一张纸上或使用任务管理软件。清单上的项目可能与个人或职业生活有关。
  • 条件赋值语句

    什么是条件赋值语句

    条件赋值语句涉及到三个操作数,一个逻辑表达式和两个表达式,所以也称三元运算符,一般形式为:变量 = 条件 ? 表达式一 : 表达式二