|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ (++a) + (++a) + (++a)的答案出问题了
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1246
人关注过本帖
标题:
(++a) + (++a) + (++a)的答案出问题了
只看楼主
加入收藏
xiao20090916
等 级:
论坛游民
帖 子:7
专家分:21
注 册:2010-4-13
结帖率:
50%
楼主
收藏
已结贴
√
问题点数:20 回复次数:14
(++a) + (++a) + (++a)的答案出问题了
我的如下代码出问题了, 是VC++6.0的问题吗?
int a=1;
int b;
b= (++a) + (++a) + (++a); 执行后b的答案居然是10, 是我的VC6.0出问题了?
搜索更多相关主题的帖子:
居然
2010-04-13 05:53
举报帖子
使用道具
赠送鲜花
MIQIKing
等 级:
论坛游侠
威 望:
2
帖 子:36
专家分:106
注 册:2010-3-21
第
2
楼
收藏
得分:2
#include<stdio.h>
void main()
{
int a=1;
int b;
b=(++a)+(++a)+(++a);
printf("%d",b);
}
结果是 12
因为++就先进行加一操作,然后计算的。所以啊,a进行三次加一操作之后进行加法求和。b=(4)+(4)+(4)=12;
2010-04-13 06:12
举报帖子
使用道具
赠送鲜花
xiao20090916
等 级:
论坛游民
帖 子:7
专家分:21
注 册:2010-4-13
第
3
楼
收藏
得分:0
是的, 我也是这么想的。 但是我的Vc6.0的结果却是10, 实在是匪夷所思, 不知道会是什么原因?
我的VC6.0其他的计算是正确的, 比如:
int a=1;
int b;
b=(++a)+(++a);的结果是6
2010-04-13 06:16
举报帖子
使用道具
赠送鲜花
一直很近
等 级:
论坛游民
帖 子:34
专家分:29
注 册:2010-4-6
第
4
楼
收藏
得分:2
(++a)+(++a)+(++a)=4+4+4=12
看来编译器还真有点问题了
2010-04-13 07:31
举报帖子
使用道具
赠送鲜花
yjy1987420
等 级:
论坛游侠
帖 子:39
专家分:120
注 册:2009-9-14
第
5
楼
收藏
得分:2
。。。。。。。。。这种题目不同编译器答案不同,没啥实际意义。不可能这么写代码的。
2010-04-13 08:00
举报帖子
使用道具
赠送鲜花
一直很近
等 级:
论坛游民
帖 子:34
专家分:29
注 册:2010-4-6
第
6
楼
收藏
得分:2
我认真的看了下,确实等于10,++具有右结合性所以在计算+时先自加1为2,然后进行+,但是后面又有个++,于是2又先自加为3,内存中a又变成3,现在它可以相加了,等于6。进入下个+,同样由于++存在,a由3自加为4,现在开始加法运算,6+4=10,结果就是这么多,这是运算规律,和编译器应该没有关系
2010-04-13 08:22
举报帖子
使用道具
赠送鲜花
老魏
等 级:
新手上路
帖 子:4
专家分:4
注 册:2010-4-12
第
7
楼
收藏
得分:2
是10塞 ,第一个++a是2,要加第二个++a.a原来是2,现在自增为3。内存就是3 所以就是3+3。最后个++a在3的基础上自增为4。所以最后结果是10
2010-04-13 08:36
举报帖子
使用道具
赠送鲜花
TIC
等 级:
论坛游民
帖 子:34
专家分:27
注 册:2009-12-26
第
8
楼
收藏
得分:2
应该还是跟编译器有点关系!
a=1;
(a++)+(a++)=2;
这是我的编译器运行的结果!
对于你刚才的那个程序;
如果这样改下:
int a=1,b,c;
b=++a;
c=++a;
printf("%d",c);
结果
c=3;
正常!!
2010-04-13 09:41
举报帖子
使用道具
赠送鲜花
xiao20090916
等 级:
论坛游民
帖 子:7
专家分:21
注 册:2010-4-13
第
9
楼
收藏
得分:0
按 一直很近 和 老魏的 说法, 就是 说, 后面 的++a 还没有做之前, 就开始做加法了, 这样的话, 优先级是有限制的? 并非所有后面优先级高的先做,而是 前面 的 加法 先于 后面 的++操作了?
2010-04-13 11:38
举报帖子
使用道具
赠送鲜花
whys
等 级:
新手上路
帖 子:50
专家分:8
注 册:2009-10-27
第
10
楼
收藏
得分:2
win-TC 测试结果是 12
2010-04-13 12:00
举报帖子
使用道具
赠送鲜花
15
1/2页
1
2
快速回复:
(++a) + (++a) + (++a)的答案出问题了
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.030316 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved