求值顺序

表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生
变化。
例如,已知表达式3*5+2,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。

  • 如果乘法先执行,结果是17。
  • 如果5和2首先相加,结果为21。

简单的求值顺序

优先级

我们小学时就知道,在前面的示例中,乘法必须在加法之前执行,因为乘法比加法有更高的
优先级。读小学的时候有4个运算符和两个优先级级别,但C#中情况更复杂一些,它有超过45
个运算符和14个优先级级别。

全部的运算符和它们的优先级如表9-4所示。该表把最高优先级运算符列在顶端,之后优先
级持续下降,底端运算符优先级最低。

运算符优先级:从高到低

结合性

假设编译器正在计算一个表达式,且该表达式中所有运算符都有不同的优先级,那么编译器
将计算每个子表达式,从级别最高的开始,按优先等级从高到低一直计算下去。
但如果两个连续的运算符有相同的优先级别怎么办?例如,已知表达式2/6*4,有两个可能
的求值顺序:

(2/6)*4=4/3
或
2/(6*4)=1/12

当连续的运算符有相同的优先级时,求值顺序由操作结合性决定。也就是说,已知两个相同
优先级的运算符,依照运算符的结合性,其中的一个或另一个优先。运算符结合性的一些重要特
征如下所示,另外,表9-5对此做了总结。

  • 左结合运算符从左至右求值。
  • 右结合运算符从右至左求值。
  • 除赋值运算符以外,其他二元运算符是左结合的。
  • 赋值运算符和条件运算符是右结合的。
    因此,已知这些规则,前面的示例表达式应该从左至右分组为(2/6)*4,得到4/3。

运算符结合性总结

可以使用圆括号显式地设定子表达式的求值顺序。括号内的子表达式:

  • 覆盖优先级和结合性规则;
  • 求值顺序从嵌套的最内层到最外层。

简单算术运算符

简单算术运算符执行基本四则算术运算,如表9-6所示。这些运算符是二元左结合运算符。
简单算术运算符

算术运算符在所有预定义简单数学类型上执行标准的算术运算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/84222.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/84222.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/84222.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制&#xff0…

CppCon 2015 学习:Simple, Extensible Pattern Matching in C++14

什么是 Pattern Matching(模式匹配) ❝ 模式匹配就是一种“描述式”的写法,不需要你手动判断、提取数据,而是直接描述你希望的数据结构是什么样子,系统自动判断并提取。❞ 你给的定义拆解: ✴ Instead of …

刷题记录(7)二叉树

一、单值二叉树 二叉树为二叉链表形式,结点为: 大概看看题就知道这道题让我们判断一个树到底所有结点的值是不是相同,相同就是单值二叉树。在实现二叉树相关操作的时候已经体会到了,递归来遍历二叉树是非常舒服的(做这…

开源:FTP同步工具

文章目录 简介功能特性Windows (EXE)从源代码构建依赖项Linux 构建Windows 构建 使用方法软件截图主界面FTP 设置快捷菜单定时设置 配置说明开发与贡献许可证 欢迎来到盹猫的博客 本篇文章主要介绍了 [开源:FTP同步工具] ❤博主广交技术好友,喜欢我的文章的可以关注…

视频质量测试点

目录 功能/UI 端侧性能 媒体质量 主观 客观 稳定性 兼容性 功能/UI 视频预览音频预览音视频同步全屏收藏打赏 端侧性能 PC端:内存占用、网络带宽占用等; 移动端:内存占用、功耗、发热、流量消耗等; 媒体质量 主观 音…

Ray框架:分布式AI训练与调参实践

Ray框架:分布式AI训练与调参实践 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 Ray框架:分布式AI训练与调参实践摘要引言框架架构解析1. 核心组件设计2. 关键技术实现2.1 动态资源调度2.2 …

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题 2025/6/9 20:54 缘起,为了跨网段推流,千辛万苦配置好了网络参数。 但是命令iptables -t filter -F tetherctrl_FORWARD可以在调试串口/DEBUG口正确执行。…

【C/C++】高效的位操作

位运算(Bitwise Operation)是直接对整数的二进制位进行操作的运算方式,在底层开发、性能优化、算法设计中广泛使用。 1 基本位运算符及含义 运算符名称示例(a5, b3)运算过程(二进制)结果&按…

后端下载限速(redis记录实时并发,bucket4j动态限速)

✅ 使用 Redis 记录 所有用户的实时并发下载数✅ 使用 Bucket4j 实现 全局下载速率限制(动态)✅ 支持 动态调整限速策略✅ 下载接口安全、稳定、可监控 🧩 整体架构概览 模块功能Redis存储全局并发数和带宽令牌桶状态Bucket4j Redis分布式限…

android app 一个 crash的解决过程!

一、日志: crash 2024-10-25 12:15:33.020 2113-2113 AndroidRuntime pid-2113 E FATAL EXCEPTION: main Process: com..workhome, PID: 2113 java.lang.RuntimeException: Unable to start activity ComponentInfo{com..w…

[Java 基础]Object 类

java.lang.Object 是 Java 所有类的直接或间接父类,Java 中每个类都默认继承 Object 类(即使你没写 extends Object)。 Object 中的常用方法: 方法名功能简介toString()返回对象的字符串表示equals(Object)判断两个对象是否“逻…

大数据学习(135)-Linux系统性指令

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…

【Fifty Project - D35】

今日完成记录 TimePlan完成情况7:00 - 7:40爬坡√8:30 - 11:30Rabbit MQ√17:30 - 18:30羽毛球√ RabbitMQ 消费者端如何保证可靠性? 消息投递过程出现网络故障消费者接收到消息但是突然宕机…

P3 QT项目----记事本(3.4)

3.4 文件选择对话框 QFileDialog 3.4.1 QFileDialog 开发流程 使用 QFileDialog 的基本步骤通常如下: 实例化 :首先,创建一个 QFileDialog 对象的实例。 QFileDialog qFileDialog;设置模式 :根据需要设置对话框的模式&…

学习笔记(26):线性代数-张量的降维求和,简单示例

学习笔记(26):线性代数-张量的降维求和,简单示例 1.先理解 “轴(Axis)” 的含义 张量的 “轴” 可以理解为 维度的方向索引 。对于形状为 (2, 3, 4) 的张量,3 个轴的含义是: 轴 0(axis0&…

健康档案实训室:构建全周期健康管理的数据基石

一、健康档案实训室建设背景 随着“健康中国2030”战略深入推进,健康档案作为居民健康数据的核心载体,在疾病预防、慢性病管理、医疗决策等领域的价值日益凸显。在此背景下,健康档案实训室建设成为职业院校对接政策要求、培养专业健康管理…

【MATLAB第119期】基于MATLAB的KRR多输入多输出全局敏感性分析模型运用(无目标函数,考虑代理模型)

【MATLAB第119期】基于MATLAB的KRR多输入多输出全局敏感性分析模型运用(无目标函数,考虑代理模型) 下一期研究SHAP的多输入多输出敏感性分析方法 一、SOBOL(无目标函数) (1)针对简单线性数据…