鱼C论坛

 找回密码
 立即注册
楼主: 湮汐

[技术交流] C语言自增自减学习资料

  [复制链接]
发表于 2024-3-19 22:36:47 From FishC Mobile | 显示全部楼层
原理表达式中除了预算法本身的优先级外,还有一个结合性问题。在(++j)+(++j)+(++j);中,因为存在两个同级的+运算,根据+运算符的“左结合性,在编译时,其实是先处理前面的((++j) + (++j))这部分,然后再将此结果再和++j相加。”这句话不明白————,不是有括号先算括号吗?为什么第三个括号不先算?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-28 10:20:26 | 显示全部楼层
shadowkill 发表于 2012-4-4 19:21
但是我还是没明白(++j)+(++j)=不是应该是 5+6吗?怎么是6+6呢

我理解的意思是,在只有一个+或者-号时,先将两边的自增运算都算完得出j的最终结果后(相当于右边的j指覆盖了前面的,因为至始至终这里只有一个变量),再进行+/-的运算;之后的更多的+/-后才是你理解的意思(因为左侧的是运算结果,相对于右侧自增运算符的j的覆盖后的值来说,里面的j值滞后一个操作,产生的差异),而前面的是同一操作阶段的,所以保持j的一致了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 13:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表