QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
4
查看: 73|回复: 3

[已解决]第二章 数据类型,运算符和表达式

[复制链接]
最佳答案
0 
累计签到:3 天
连续签到:2 天
开心丶 发表于 4 天前 733 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
第三个(++i)为什么是22,不应该是8*3=24吗(这是老师给的答案)??
第二个(++i)为什么变成14了,是怎么算的?
我的想法是 (++i)+(++i)+(++i)    6+7+8=21.
求助下为什么从第二个开始变7*7,而后面的 为什么不会变了??
最佳答案
4 天前
1,++在后,说明结果在下一条语句生效
2,++在前,本次马上生效
3,(++j)+(++j)+(++j)  运算优先级 其实是 ((++j)+(++j))+(++j)  7+7+8

不同编译器可能结果不同。
微信图片_20180114134649.png
微信图片_20180114134701.png
微信图片_20180114134714.png
微信图片_20180114134726.jpg
楼层
跳转到指定楼层
最佳答案
572 
累计签到:222 天
连续签到:51 天
ba21 发表于 4 天前 | 显示全部楼层    本楼为最佳答案   
1,++在后,说明结果在下一条语句生效
2,++在前,本次马上生效
3,(++j)+(++j)+(++j)  运算优先级 其实是 ((++j)+(++j))+(++j)  7+7+8

不同编译器可能结果不同。
最佳答案
31 
累计签到:28 天
连续签到:10 天
orino 发表于 4 天前 | 显示全部楼层
本帖最后由 orino 于 2018-1-14 14:46 编辑

完整的三个表达式的实际计算应该是如下:
1.7+7+8=22
2.7+7=14
3.7+7+8+9=31

其实一个表达式不是直接就变成上面这样的1形式的,例如第三个(++i) + (++i) + (++i) + (++i), 其实是从左边开始,先算最左边第一个的加法,但加法之前 括号里面有自增,所以先算自增,也就是 先把 第一个++i和第二个++i运算好,这时i变成了7,所以式子变成了 7+7  + (++i) + (++i),也就是14  + (++i) + (++i),14是中间结果保存。 同理要计算第2个加法,把第三个 ++ i 运算完,此时,i变成8, 式子变为14+8  + (++i)=22+ (++i),接着变成 22+9=31.
最佳答案
31 
累计签到:28 天
连续签到:10 天
orino 发表于 4 天前 | 显示全部楼层
前几天有相似的问题,已经作答,可以参考一下。
http://bbs.fishc.com/thread-102944-1-1.html

发表回复

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

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /2 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-1-18 15:54

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