| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1339 人关注过本帖
标题:tc2.0上几个++,--结合问题(相信看了之后你会outbreak的)
只看楼主 加入收藏
lxc2lxy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-7-26
收藏
得分:0 
以下是引用zrgong在2007-7-25 20:15:40的发言:

对于printf函数中是严格按照从左到右,一个括号一个括号计算的

果然是这样。
只是不知道为什么……


2007-07-26 10:26
asxiaofuchao
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-23
收藏
得分:0 
如果(i++)+(i++),依然先++,但是因为是后缀,所以先取值,最后才++,故先+,结果为2,然后i变成3。


10楼的 你能说清楚点吗?
后缀式的 应该是先运算后自增啊
这些题 我也搞不明白
2007-07-26 11:23
asxiaofuchao
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-23
收藏
得分:0 
请问8楼的
(原因:编译顺序不同,TC编译是从右到左,对于i++;++i的编译是这样的:
如:i=5
p=(i++)+(i++)+(i++);就是i在赋值完成后再自加,所以p=5+5+5=15;
q=(++i)+(++i)+(++i);是i在赋值之前就自加q=8+8+8=24。)

为什么 q=(++i)+(++i)+(++i);中的q都变成了8
我个人认为是这样 第一个++i i应该自增为6
第二个++i i应该自增为7
第三个++i i应该自增为8
所以 q=6+7+8=21
请问下 我是错在那里了 谢谢指出啊
2007-07-26 11:31
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
收藏
得分:0 
用这么多时间想这些没用的细节干嘛啊...跟本就是浪费时间

2007-07-26 11:59
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
收藏
得分:0 
不,补充一句,考试有用..*.*

2007-07-26 12:01
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
你写出这样的代码要被你的伙伴抽的。在不同编译器上都可能有不一样的结果,你觉得有意思吗?
2007-07-26 12:13
asxiaofuchao
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-23
收藏
得分:0 
呵呵  我就是要考试呀~~麻烦你指导下  先谢了
2007-07-26 12:27
zrgong
Rank: 1
等 级:新手上路
帖 子:95
专家分:0
注 册:2007-6-26
收藏
得分:0 
想当年就是因为2个这样的题目,我被我老师阴了。从学好C到现在,实际中从来没用到过,既然是考试,你就这样理解:
q=(++i)+(++i)+(++i)
<=>1, ++i;i-->6
2, ++i;i-->7
4, ++i; i-->8
5, q=i+i+i;-->q= 8+8+8=24
这就是编译器处理的分解过程,没有什么原因,也没有研究的必要,当时做编译器的人就是这么处理语言的。

规则是人定的,至于当时为什么这么定,也没必要去研究。

你不会想考100分吧,不要这样,给老师留点面子

2007-07-26 19:34
luo123
Rank: 1
等 级:新手上路
威 望:2
帖 子:324
专家分:0
注 册:2007-4-13
收藏
得分:0 
好难懂啊

[url=http://www..cn]电子编程[/url]
2007-07-26 19:53
wnpcl
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-27
收藏
得分:0 

对于以上各楼所说的,由于编译器不同结果也不对.我以下所说的主要是VC6.0版说的,因为我用这个比较多.TC以前记得,好久没用,忘记了.今天先大概说下编译的原理.
如"
#include (stdio.h)
main ( )
int i=5;
int j;
j=(++i)+(++i)+(++i);
printf("%d",j)
结果应24.
原因是为这样的从左往右说:第一个(++i)结果为6,第二个(++i)结果为8,第三个结果也为(++i)也为10.所以式子结果为24.这是从编译原理方面解释的.
好比i=3;也是以上式子结果将为3+5+7=15.大家可以试下,原理就是这样的,不知道小弟记错了没,如果有错误请原谅,今天下班回家查下.由于现在在上班没多的时间来说明.

2007-07-27 13:41
快速回复:tc2.0上几个++,--结合问题(相信看了之后你会outbreak的)
数据加载中...
 
   



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

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