| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2537 人关注过本帖
标题:我预期的结果是30 ,为什么程序运行的结果是25?
只看楼主 加入收藏
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
结帖率:72.73%
收藏
已结贴  问题点数:20 回复次数:47 
我预期的结果是30 ,为什么程序运行的结果是25?
int main()
{
    int a=5,b;
    b=++a*--a;
    printf("b=%d\n",b);
    return 0;
}
我预期的结果是:30 ,为什么程序运行的结果是25?


[ 本帖最后由 redice 于 2009-9-3 18:42 编辑 ]
搜索更多相关主题的帖子: 结果 运行 
2009-09-03 18:40
ic06123
Rank: 2
等 级:论坛游民
帖 子:39
专家分:57
注 册:2009-9-2
收藏
得分:0 
貌似应该就是30,不过这个貌似与编译器等有关。。。
2009-09-03 19:33
handsomeisme
Rank: 2
等 级:论坛游民
帖 子:19
专家分:62
注 册:2009-9-2
收藏
得分:0 
由于自加和自减的运算级别高于相乘,所以b=(++a)*(--a)中先执行的是自加和自减,这能理解吧。
执行完自加自减后,就那++a来说吧,先把5赋给a++,然后a得值加1变成6,后面的a--就是同一个道理了。
也就是b=5*5,所以结果就是25了。希望你能仔细区别一下a++和++a,这两个是不一样的。
2009-09-03 19:37
ic06123
Rank: 2
等 级:论坛游民
帖 子:39
专家分:57
注 册:2009-9-2
收藏
得分:0 
回复 3楼 handsomeisme
貌似这个++a的返回值是6吧,6*5=30嘛。。
2009-09-03 19:50
朔月
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2009-9-2
收藏
得分:0 
分配给a的储存单元里为数值5,b实为a*a,++、--单目运算对储存单元里的5加1又减1,a的值还是为5,则b=a*a=5*5.
2009-09-03 20:24
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
回复 3楼 handsomeisme
"希望你能仔细区别一下a++和++a,这两个是不一样的。"  呵呵,这两个当然是不一样的。

a=5;
(++a)的值=6,a的值=6;
(--a)的值=5,a的值=5;
这样算的结果就是30
++,--的结合方向是“自由至左”的, 所以应该先算(--a),再算(++a)
a=5;
(--a)的值=4,a的值=4;
(++a)的值=5,a的值=5;
这样算的结果是20

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2009-09-03 20:36
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
回复 5楼 朔月
运算是有先后顺序的

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2009-09-03 20:37
handsomeisme
Rank: 2
等 级:论坛游民
帖 子:19
专家分:62
注 册:2009-9-2
收藏
得分:0 
回复 4楼 ic06123
自加的运算级别是高于乘法的。。。
2009-09-03 20:39
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
回复 8楼 handsomeisme
这大家都知道...

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2009-09-03 20:46
皇后
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2009-9-3
收藏
得分:0 
赶紧的来个终结者 为什么都不一样 ? 我感觉也应该是25的啊
2009-09-03 20:51
快速回复:我预期的结果是30 ,为什么程序运行的结果是25?
数据加载中...
 
   



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

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