|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请指点:这个程序的正确结果
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
453
人关注过本帖
标题:
请指点:这个程序的正确结果
只看楼主
加入收藏
荒野苍狼
等 级:
新手上路
帖 子:2
专家分:0
注 册:2011-3-21
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:7
请指点:这个程序的正确结果
#include"stdio.h"
main()
{int i=3,j=0;
j=i++ * ++i + i-- * --i;
printf("j=%d\n",j);
}
书上给的结果是18我在机器上运行的是25(vc6.0)为什么?
搜索更多相关主题的帖子:
include
2011-03-21 18:07
举报帖子
使用道具
赠送鲜花
minand
等 级:
论坛游民
帖 子:71
专家分:89
注 册:2011-3-16
第
2
楼
收藏
得分:1
j=0了 后面那个式子有什么意义
2011-03-21 18:13
举报帖子
使用道具
赠送鲜花
刘定邦
等 级:
青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
第
3
楼
收藏
得分:3
3*4+3*2=18呀。不过这不同的编译器是有差别的。
2011-03-21 18:17
举报帖子
使用道具
赠送鲜花
孤单旋律
等 级:
论坛游民
帖 子:30
专家分:23
注 册:2010-10-22
第
4
楼
收藏
得分:3
i++是先赋值后运算,++i是先运算后赋值,说以答案是3*4+3*2=18!
2011-03-21 18:26
举报帖子
使用道具
赠送鲜花
liangjinchao
等 级:
黑侠
帖 子:376
专家分:697
注 册:2010-11-8
第
5
楼
收藏
得分:3
同意:18
因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-21 18:30
举报帖子
使用道具
赠送鲜花
bccn250
等 级:
职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
第
6
楼
收藏
得分:6
好像是
先 ++i 这时 i==4
然后 因为 i++ 的加一操作是后执行的,所以是先做第一个乘法。也就是 4*4 得到结果 16
然后 --i 这时 i==3
然后 因为 i-- 的减一操作是后执行的,所以是先做第二个乘法。也就是 3*3 得到结果 9
然后是执行加法,16+9 就等于 25了
最后才是 i++ 和 i-- 完后 i==3
这是我的猜想,我想破脑子,只得到这种方法能算出是 25
不知道是不是这样的(VC6.0)
不好意思,刚才弄错了,现在更正。编辑完
[
本帖最后由 bccn250 于 2011-3-21 19:00 编辑
]
2011-03-21 18:38
举报帖子
使用道具
赠送鲜花
给力芬2010
等 级:
论坛游民
帖 子:48
专家分:71
注 册:2011-3-17
第
7
楼
收藏
得分:2
先加后用
先用后加
2011-03-21 19:07
举报帖子
使用道具
赠送鲜花
我是传奇
等 级:
论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
第
8
楼
收藏
得分:2
i的值在计算的过程中变化了,但是初始值没变
2011-03-22 12:47
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
请指点:这个程序的正确结果
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018117 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved