C实现 i++与sum最后的关系()高手进

[复制链接]
查看11 | 回复2 | 2007-6-25 19:02:52 | 显示全部楼层 |阅读模式
同意一楼的.我用TC是出现了下面的结果.而用vc++出现的结果不同.下面是用TC下的结果的解释.第一题:sum=12,i=4原因是,(++i)用括号括起来了,而且所以先做括号里面的,由于三个括号的地位是等同的,做按从左到右的顺序做.依次做++i,i=2;++i,i=3;++i,i=4;这时,再做三个加法,4+4+4=12;第二题:sum=3,i=4;原因是,(i++)用括号括起来,所以先做.又因为i++返回的是i,且第二个i++和第三个i++都是返回i的值,故sum=1+1+1=3
回复

使用道具 举报

千问 | 2007-6-25 19:02:52 | 显示全部楼层
正如楼上两位所说。你的写法并不推荐甚至是禁止使用的,虽然比编译器支持它。程序是写来让人看的,不是让人再去分析一次。我主要是想说明一着第一个题。TC下的结果是12,4而VC下则是10,4。原来是其实在这样的式子当中,如果不是++i这样奇怪的式子出现的话,三个括号先算了再加,还是先算前两个括号之和再加第三个括号,结果是相同的。所以说你的第一个写法本身就是有歧义的。
回复

使用道具 举报

千问 | 2007-6-25 19:02:52 | 显示全部楼层
好高深呀不懂
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行