免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3895 | 回复: 18
打印 上一主题 下一主题

[C] int i = 2; (i++)*(++i)/(i++) - (--i) 为什么为0,请指点,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-05 00:29 |只看该作者 |倒序浏览
如题,希望能得到指点,谢谢

[ 本帖最后由 cdphp 于 2008-1-5 00:35 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-01-05 00:34 |只看该作者
楼主可以大大方方的骂出题者白痴,
如果被扣分货扣奖金,不要来找我。

论坛徽章:
0
3 [报告]
发表于 2008-01-05 00:38 |只看该作者
原帖由 芙蓉 于 2008-1-5 00:34 发表
楼主可以大大方方的骂出题者白痴,
如果被扣分货扣奖金,不要来找我。


这题是四川师大的会计系 期末 考试卷。我搞了半天愣是没有搞明白。落伍太多了,哎

论坛徽章:
0
4 [报告]
发表于 2008-01-05 00:40 |只看该作者
原帖由 cdphp 于 2008-1-5 00:38 发表


这题是四川师大的会计系 期末 考试卷。我搞了半天愣是没有搞明白。落伍太多了,哎


倒!那我明白无误地说,这是一道错题,出题者明显一叶障目。

论坛徽章:
0
5 [报告]
发表于 2008-01-05 00:43 |只看该作者
原帖由 芙蓉 于 2008-1-5 00:40 发表


倒!那我明白无误地说,这是一道错题,出题者明显一叶障目。



请问为什么是错题啊 ,错在哪里呢?

论坛徽章:
0
6 [报告]
发表于 2008-01-05 00:55 |只看该作者
原帖由 cdphp 于 2008-1-5 00:43 发表



请问为什么是错题啊 ,错在哪里呢?


说说为0的情况,
++i, --i 的结果,应该都和i放在同样的内存位置,
先计算++i和--i, 再计算整个表达式,这是因为位置一样,所以两者值一样,于是结果为0。
这是可以理解的。
但是且慢,(++i)不同于++i, (++i)的值是否必须和++i放在同一个地方呢,
(i++)*(++i)/(i++),也理应和++i的值不放在同一个地方,(当然,现在再弱智的编译器都会做点优化,这是另一会事)
所以,结果不为0,也是完全可以接受的。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2008-01-05 00:57 |只看该作者
中国的教育还要被这样耽误下去多少年........
可悲的不是有些学生还在做这种题,而是很多学校还在出这种题

[ 本帖最后由 cjaizss 于 2008-1-5 10:24 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2008-01-05 01:16 |只看该作者
原帖由 芙蓉 于 2008-1-5 00:55 发表


说说为0的情况,
++i, --i 的结果,应该都和i放在同样的内存位置,
先计算++i和--i, 再计算整个表达式,这是因为位置一样,所以两者值一样,于是结果为0。
这是可以理解的。
但是且慢,(++i)不同于++i, ...


我用VC 编译运行的时候,还有一个问题,
int i = 2, 表达式(i++)*(++i)的值居然是9,这又是怎么回事呢。。
按我的理解,应该是 4 * 4 = 16 才对啊。  看来我还得加倍努力。。。

论坛徽章:
0
9 [报告]
发表于 2008-01-05 01:27 |只看该作者
原帖由 cdphp 于 2008-1-5 01:16 发表


我用VC 编译运行的时候,还有一个问题,
int i = 2, 表达式(i++)*(++i)的值居然是9,这又是怎么回事呢。。
按我的理解,应该是 4 * 4 = 16 才对啊。  看来我还得加倍努力。。。



你再努力就是钻牛角尖了
不要当孔乙己

论坛徽章:
0
10 [报告]
发表于 2008-01-05 10:46 |只看该作者
to 楼主:
你的疑问可以简化为一个 x * x / x - x 为什么等于0的问题。
不管是i++、++i、--i,都不会影响到计算“这个”表达式的值。

to 6楼:
对于“这个”表达式,不管编译器做不做优化,因为没有涉及++(++i)的问题,所以不会出现不是0的情况。题目应该没有这种问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP