| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 598 人关注过本帖
标题:简单的C错误
只看楼主 加入收藏
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:9 
简单的C错误
请大家用手工计算下下面的输出,再用VC6.0编译执行,请测试DEBUG版本和Release版本的差别。
为什么DEBUG版本输出是16,Release版本输出是18呢?
#include <stdio.h>   
int bug()   
{   
    int a=3,b;   
    b=0;
    b=(++a)+(++a)+(++a);
    return b;   
}   

void main()   
{   
    int b = bug();   
    printf("%d", b);   
}
搜索更多相关主题的帖子: return 
2011-06-06 10:16
c564794923
Rank: 2
等 级:论坛游民
帖 子:64
专家分:95
注 册:2011-5-25
收藏
得分:3 
自加这种符号就是这样,要明确运用,不然结果容易出不一样的结果
2011-06-06 10:22
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:3 
看来我的是debug版本,
debug:++a=3+1,++a=5,5+5=10,++a=6,10+a=16;
另一个版本:++a=4,++a=5,++a=6,6+6+6=18;
2011-06-06 10:45
键盘农夫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:106
注 册:2011-5-5
收藏
得分:3 
b=(++a)+(++a)+(++a)
这种表达式本身就是错误的写法

《狂人C:程序员入门必备》
2011-06-06 11:15
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
收藏
得分:0 
回复 4楼 键盘农夫
如果你觉得加了括号还是错误的写法,那正确的写法是?

在虚拟的世界中寻找目标。
2011-06-06 11:26
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
收藏
得分:0 
回复 2楼 c564794923
这个我也知道,我现在想知道的是我用括号限制了优先级,可是为什么结果等于16

在虚拟的世界中寻找目标。
2011-06-06 11:28
键盘农夫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:106
注 册:2011-5-5
收藏
得分:0 
回复 5楼 faminxmu
跟加不加括号没关系
至于正确的写法
那首先要看你想要表达的是什么

《狂人C:程序员入门必备》
2011-06-06 13:39
讀詠夅
Rank: 2
等 级:论坛游民
帖 子:56
专家分:80
注 册:2011-5-18
收藏
得分:3 
学习~!
2011-06-13 15:43
chenhongzhi
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2011-6-13
收藏
得分:3 
学习
2011-06-13 16:22
bccn_2012
Rank: 6Rank: 6
等 级:侠之大者
帖 子:158
专家分:447
注 册:2011-5-14
收藏
得分:3 
编译器的问题
2011-06-13 16:42
快速回复:简单的C错误
数据加载中...
 
   



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

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