| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 537 人关注过本帖
标题:问几个问题
只看楼主 加入收藏
guguti
Rank: 1
等 级:新手上路
帖 子:15
专家分:6
注 册:2010-8-18
收藏
 问题点数:0 回复次数:8 
问几个问题
语句int i=3;k=(i++)+(i++)+(i++);执行过后 k 的值为      ,i 的值为
   
这个k的值要怎么算呢 我的想法是3+4+5 可是错了  还有三个类似的题

如果 i=3,则 k=(i++)+(++i)+(i++)执行过后 k 的值为      ,i 的值

如果 i=3,则 k=(++i)+(++i)+(i++)执行过后 k 的值为      ,i 的值  

如果 i=3,则 k=(++i)+(++i)+(++i)执行过后 k 的值为      ,i 的值  
求解答 谢谢
2010-10-27 17:49
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
收藏
得分:0 
不同的编译器有不同的结果。
但是原理是一样的

编程的道路上何其孤独!
2010-10-27 17:51
guguti
Rank: 1
等 级:新手上路
帖 子:15
专家分:6
注 册:2010-8-18
收藏
得分:0 
用vc说说啥原理 怎么算呢
2010-10-27 17:52
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
收藏
得分:0 
k=(i++)+(i++)+(i++);按照运算符来说,是先计算,后自增,既然都在一个表达式里,所以,就应该先运算咯。最后应该是6

k=(++i)+(++i)+(++i);因为是前置运算,所以,先自增。由于变量i指向的是一个地址,所以从左到右i依次自增1,由于VC保存前两个加数的和,所以当运行到前两个i的和是5+5=10的时候,先保存这个结果。然后再加上最后一个i.所以最后是16.

编程的道路上何其孤独!
2010-10-27 18:01
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-27 18:22
longlongago7
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-10-27
收藏
得分:0 
i的值都是6,k的值分别是9,12,15,18
2010-10-27 18:46
guguti
Rank: 1
等 级:新手上路
帖 子:15
专家分:6
注 册:2010-8-18
收藏
得分:0 
回复 4楼 outsider_scu
怎么是16呢 答案是18
2010-10-28 21:00
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
收藏
得分:0 
以下是引用guguti在2010-10-28 21:00:17的发言:

怎么是16呢 答案是18
我说了,不同的编译器有不同的结果
VC6是16
TC2是18

编程的道路上何其孤独!
2010-10-28 21:20
快速回复:问几个问题
数据加载中...
 
   



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

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