| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 784 人关注过本帖
标题:m=(++i)+(++i)+(++i);
只看楼主 加入收藏
dzui
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-1-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
m=(++i)+(++i)+(++i);
#include "stdio.h"
main()
{
int i,m;
i=5;
m=(++i)+(++i)+(++i);
printf("m=%d\ni=%d\n",m,i);
getch();
}
的结果怎么在TC里是m=24,i=8,而在VC++里是m=22,i=8
搜索更多相关主题的帖子: include 
2010-01-20 13:40
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:5 
我想每一本C语言书都会告诉你这问题的原因并告诫你不要再为此类问题而困扰.

编译器的不同导致了结果的不同, 自己不要写这样的程序就可以了, 为了好的移植性.
2010-01-20 15:10
Devon_Ye
Rank: 4
来 自:广东
等 级:业余侠客
帖 子:124
专家分:282
注 册:2010-1-7
收藏
得分:5 
楼上说的很对,是编译器不同导致的结果
其实答案在别的帖子里已经有了,我借花献佛咯。
int i=5; 计算(++i)+(++i)+(++i)的值=?
  由于VC在处理 a+b+c的时候是按(a+b)+c来处理的,所以对上表达式是:
  先计算(++i)+(++i)然后再第三个++i,从而表达式的结果是: (7+7)+8=22
2010-01-20 16:06
lele2010
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:84
专家分:121
注 册:2010-1-23
收藏
得分:5 
对没错!楼上说的对!这个问题要值的我们这些菜鸟注意!

喜欢结交更多C语言学习者,QQ:1093027367
2010-01-23 16:15
mickeycucu
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2010-1-23
收藏
得分:5 
我在学习c语言时考过类似的题目,后来也就不了了之了,我自己看书,说是编译器的问题,我才知道de
2010-01-23 16:36
快速回复:m=(++i)+(++i)+(++i);
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050463 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved