免费注册 查看新帖 |

Chinaunix

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

问个I自加的问题!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-04 16:04 |只看该作者 |倒序浏览
请看下面的程序:
main()
{
int i=3,k;
k=(++i)+(++i);
printf("%d\n",k);
}
运行结果为10,而把K换为i时结果还是10
再看:
main()
{
int i=3,k;
k=(++i)+(i++);
printf("%d\n",k);
}
运行结果为8,而把k换为i时结果为9
我在这样写:
main()
{
int i=3,k;
k=(i++)+(++i)+(i++);
printf("%d\n",k);
}
运行结果为12,而把k换为i时结果为14

请问关于I的左右自增到底是怎么会事???
是参与运算的I值是当前的I值还是全部括号内的I值算完后的I值???
也就是说是每一个括号的值算出后就参加当前的运算,还是把每一个括号的I值算出后在把最后一个值当作最终值进行运算!
可我反复推都觉得不合适!(自相矛盾哦!!!呵呵~~~~~)
请C的哪个高手解答!!!(能不能说详细些,我这人笨哦!没办法!)
快考试了!!!急呀!!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-06-04 17:26 |只看该作者

问个I自加的问题!!!

搜索这个论坛。
viggy 该用户已被删除
3 [报告]
发表于 2004-06-04 18:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2004-06-04 18:21 |只看该作者

问个I自加的问题!!!

个儿认为其实这个问题只要知道++i返回i+1的值,而i++返回i本来的值就够了,象什么=(++i)+(++i) 没有任何一个正常人会写成这种代码。有点类似“回”字的四种写法。

论坛徽章:
0
5 [报告]
发表于 2004-06-04 19:27 |只看该作者

问个I自加的问题!!!

http://bbs.chinaunix.net/forum/viewtopic.php?t=247633&postdays=0&postorder=asc&start=15

论坛徽章:
0
6 [报告]
发表于 2004-06-04 21:09 |只看该作者

问个I自加的问题!!!

test

论坛徽章:
0
7 [报告]
发表于 2004-06-04 21:18 |只看该作者

问个I自加的问题!!!

你用的什么编译器,我用tc2.0试了一下,结果的确如此,我找到一个规律,告诉你,试试看。但是让我说它到底是怎么实现的,我还真不知道。这个在unix下是不行的。假设int i=3
k=(i++)+(++i)+(i++)+(i++)+(++i);
用初始值3加上++i的个数(这里是2)=5
用这个5乘以表达式中加数的个数(这里是5)
即:k=(3+2)*5=25
如果把k变成i,则需要用这个25再加上表达式中i++的个数(这里是3)
则为25+3=28,
i=(i++)+(++i)+(i++)+(i++)+(++i);
i=28.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2004-06-04 22:02 |只看该作者

问个I自加的问题!!!

原帖由 "badcat" 发表:
你用的什么编译器,我用tc2.0试了一下,结果的确如此,我找到一个规律,告诉你,试试看。但是让我说它到底是怎么实现的,我还真不知道。这个在unix下是不行的。假设int i=3
k=(i++)+(++i)+(i++)+(i++)+(++i);
用?.........

这类问题就不要研究了,
你永远得不得正确答案。
看win_hate版主的链接。

论坛徽章:
0
9 [报告]
发表于 2004-06-05 19:08 |只看该作者

问个I自加的问题!!!

可是这样的考试题比比皆是!!!
昨天回去想了一下,也得出上面的那个计算方法!!!
我在 这样的考试中弄的好辛苦,
上面的那位兄弟说的对!
哪个傻比会写出这样的程序?
在等级考试中居然有这样的题目, CU 的兄弟们, 耻笑之。

靠!
也没人写信给计算机考试委员会??

论坛徽章:
0
10 [报告]
发表于 2004-06-05 22:16 |只看该作者

问个I自加的问题!!!

你如果看c/c++标准的话, 这是一个没有定义的行为, 等于几都是可能的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP