鱼C论坛

 找回密码
 立即注册
查看: 1794|回复: 7

符号优先级

[复制链接]
发表于 2015-6-28 17:58:09 | 显示全部楼层 |阅读模式

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

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

x
问下入门的问题:ton:  算法优先级的问题  n++优先级为2,++n优先级为3,k=n优先级为16,如图 为什么是先赋值后运算?
5631.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-6-28 18:23:58 | 显示全部楼层
这些就是优先级问题   可以 死记
http://wenku.baidu.com/link?url=a5_BKzVjHihcbr0VAM9TDDdZ0JMUJIF17K8CdwVLzJGSkIOVjPWq48PR0Mwr_2No9OoibaQ5OhmmD-h9zW-OeeJo9Ni_QAwmsuLGOB-90Yi
这是百度的资料
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-28 20:51:35 | 显示全部楼层
这题和运算符的优先级无关,如果想认真研究这个问题的话,恐怕你要先颠覆自己对于表达式的理解

简单说,表达式含有表达式的值和表达式的副作用两个属性,
如果n = 1;
n++这个表达式的值是1,表达式的副作用是n的值变为2
具体可参考相关国外的专业C语言教程。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-29 17:16:06 | 显示全部楼层
本帖最后由 哥斯拉不说话 于 2015-6-29 17:20 编辑

k = n++; 已知 ++ 优先级 高于 = 的优先级,故先执行 ++, 又 n++ 的意思是 先使用 ,后加1, 故 先将 n 的值赋值给 k(先使用),然后 n = n+1(后加1);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-29 21:08:14 | 显示全部楼层
我是新手,我是这么记的,  ++在前,先自身加1,然后在计算别的;
   
                                     ++在后,先计算别的,然后在加1;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-29 22:03:32 | 显示全部楼层
我也是死记的,我就是不理解无论从优先级看 还是从结合性看 还是看赋值表达式看 都该是从右至左为什么会是先 K=n 然后 n++,:shy: 所以请高手指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-1 22:10:46 | 显示全部楼层
其实这事考试才会用到,编程的时候括号可以解决
自己编程的时候,写成这样,不是很好的代码风格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-8 18:52:53 | 显示全部楼层
n++是下一次使用之前才加的一,也就是,本次使用的还是n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 04:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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