鱼C论坛

 找回密码
 立即注册
查看: 1982|回复: 12

[已解决]'+'两端表达式运算顺序

[复制链接]
发表于 2017-10-21 14:57:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小蒙 于 2017-10-21 14:57 编辑

C primer plus中有这样一段叙述:
int x =  a * b + c * d
C语言没有规定先算+号前半部或者后半部,在不同的硬件上完成效果不一样,可能在一种硬件上是从左至右进行,可能在另一种硬件上就是先算c * d然后再算a * b,然后再相加。
接着给出了另一个例子。
int x = num / 2 + num++ 
书里说这个表达式的计算顺序就有不同的可能。但是据我理解,表格显示自增运算符的优先级大于除号,从这个角度看,应该先算自增,然后算除法,最后加法,哪一种是对的? IMG_2318.JPG

最佳答案
2017-10-21 16:59:35
你可以把自增看成是一个数字,它就是一个整体。再按照优先级计算就可以。
别在纠结于这些,只要知道优先级,写代码的时候注意一下优先级,该加()加()。太在意这些会影响你写代码的思绪的。就像那个三个自增相加结果是多少的问题一样,别太纠结,平时也不太会这么用,一来这样写自己要思考,需要时间,二来别人看也费劲。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-21 16:53:36 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-21 16:59:35 | 显示全部楼层    本楼为最佳答案   
你可以把自增看成是一个数字,它就是一个整体。再按照优先级计算就可以。
别在纠结于这些,只要知道优先级,写代码的时候注意一下优先级,该加()加()。太在意这些会影响你写代码的思绪的。就像那个三个自增相加结果是多少的问题一样,别太纠结,平时也不太会这么用,一来这样写自己要思考,需要时间,二来别人看也费劲。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-21 17:16:51 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-21 16:59
你可以把自增看成是一个数字,它就是一个整体。再按照优先级计算就可以。
别在纠结于这些,只要知道优先级 ...

谢谢,我想着想着就不自觉的跑偏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 11:48:54 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-21 16:59
你可以把自增看成是一个数字,它就是一个整体。再按照优先级计算就可以。
别在纠结于这些,只要知道优先级 ...


大牛你好,我又发了一个问题贴,有时间能不能帮忙看一下? 谢谢。看这里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 13:13:34 | 显示全部楼层
小蒙 发表于 2017-10-23 11:48
大牛你好,我又发了一个问题贴,有时间能不能帮忙看一下? 谢谢。看这里

你发出来的时候我就看过了,只是我不知道,就不回了,怕误导了你,我也只是个初学者
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 13:16:18 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-23 13:13
你发出来的时候我就看过了,只是我不知道,就不回了,怕误导了你,我也只是个初学者

谦虚谦虚。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 13:18:13 | 显示全部楼层

没有没有,真的。我只学了半年不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 13:20:04 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-23 13:18
没有没有,真的。我只学了半年不到

那也比我强,我只学了1个月不到。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 13:22:11 | 显示全部楼层
小蒙 发表于 2017-10-23 13:20
那也比我强,我只学了1个月不到。。。

你应该是看C primer plus学吧?我看不进书,我就只看了视频
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 13:29:49 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-23 13:22
你应该是看C primer plus学吧?我看不进书,我就只看了视频

对,刚才那个帖子我又试了几个例子,“文件结束符”这个东西确实scanf和getchar都收不了他们,我能做到的只能被动的让文件结束符一直走到主调函数,放在主调函数的倒数第二行(return 0;上面),才能比较自然的退出程序。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 13:32:32 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-23 13:22
你应该是看C primer plus学吧?我看不进书,我就只看了视频

你用clion么?clion的终端怎么样输入文件结束符,ctrl+D在这里不好用,我只能把系统terminal打开,在那里运行程序,然后ctrl+D才能用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 13:40:46 | 显示全部楼层
小蒙 发表于 2017-10-23 13:32
你用clion么?clion的终端怎么样输入文件结束符,ctrl+D在这里不好用,我只能把系统terminal打开,在那里 ...

我没用过,我到先在只用VC++6.0和linux,不过linux很少用,调试太麻烦,基本用VC++6.0,因为不做什么大的编程,也没什么新规则,就没换编译器,能用就成
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-28 18:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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