鱼C论坛

 找回密码
 立即注册
查看: 4131|回复: 6

为什么负值没存入i

[复制链接]
发表于 2013-7-23 10:24:11 | 显示全部楼层 |阅读模式
3鱼币
未标题-1.jpg 如图:第一个-i++=8可以理解,可为什么之后的i不是-9呢?求详解,感谢……

最佳答案

查看完整内容

i++是对i的自增操作,而-i++只是一个表达式,你又没把这表达式的值赋给i,它为啥要变呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 10:24:12 | 显示全部楼层
i++是对i的自增操作,而-i++只是一个表达式,你又没把这表达式的值赋给i,它为啥要变呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 11:46:00 | 显示全部楼层
因为你没有使用 =- 运算符
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2013-7-23 12:21:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 15:11:12 | 显示全部楼层
本帖最后由 style?b? 于 2013-7-23 15:13 编辑

负号和++都是右侧结合,所以-i++是先算i++,再算负号,是-(i++)而不是(-i)++又因为i++是先使用i在加1,所以-i++为-8,i=9
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 22:53:30 | 显示全部楼层
很简单的啊,你能理解前一个,怎么不能理解后一个呢,首先要搞清楚
i++,和 i--,这种后缀形式的自增自减用在printf函数中是先打印后自增或自减。
再就是,运算优先级的问题,自增自减比加减乘除要高,所以-i++就是-(i++)
对于你这个例子,当i=8时,-i++就是打印出来的是-8 ,之后值自增1,就是I=9
然后-i--打印出来的就是-9,之后i的值自减1,就是8
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-24 06:49:41 | 显示全部楼层
额,我简单的解释下,不知道是不是对的,我的理解是I++是先输出了后在进行自加,像8++输出的还是8,而下面的输出i就是9了。后面的那个-i--,之前的i是9,所以输出是-9,然后运算i=i-1,所以9-1=8啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-18 16:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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