无敌暴龙战士开E啦 2024-03-13 10:06 采纳率: 100%
浏览 3
已结题

括号不是具有绝对优先级吗

为什么我在代码运行的时候(x--)4是先算乘4后减减,(x-1)4是先算-1后乘4,括号的优先级为什么在x--这不适用了,能不能帮我解释一下

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-13 10:07
    关注

    引自免费微信小程序:皆我百晓生

    在C#中,运算符确实存在优先级规则,并且括号 () 的优先级是最高的。然而,您提到的表达式 (x--)(x-1) 并非真正涉及优先级的问题,而是后缀和前缀自减运算符的行为差异。

    1. 后缀自减运算符 --: 当你使用后缀形式的自减运算符如 (x--) 时,它不会立即修改变量 x 的值,而是在表达式的当前上下文中先使用 x 当前的值,然后才将 x 减一。例如,在表达式 4 * (x--) 中,会先计算 x 当前的值与 4 相乘,之后再将 x 减一。

    2. 简单减法运算 -: 对于简单的算术表达式 (x - 1),它是直接将 x 与 1 进行减法运算,结果就是 x 减去 1 后的值。

    3. 前缀自减运算符 --x: 如果你想实现类似 (x-1) 的效果(即先减一再参与运算),可以使用前缀自减运算符 --x。这样在表达式 4 * (--x) 中,x 先减一,然后再与 4 相乘。

    所以,(x--)(x-1) 表达式的行为不同并非因为括号优先级问题,而是由于自减运算符本身的前缀和后缀特性决定的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月13日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据