| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1610 人关注过本帖
标题:[求助]a=b=c求解
只看楼主 加入收藏
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
 问题点数:0 回复次数:28 
[求助]a=b=c求解
情况1
int a=2,b=3,c=4;
a=b=c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
显示a=4,b=4,c=4 -------------------正常

情况2
int a=2,b=3,c=0;
a=b=c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
显示a=0,b=0,c=0 ------------------正常

情况3
int a=2,b=3,c=4;
if(a=b=c)
a=8;
else
a=888;
printf("a=%d,b=%d,c=%d\n",a,b,c);
显示a=8,b=4,c=4 ------------------正常

情况4
int a=2,b=3,c=0;
if(a=b=c)
a=8;
else
a=888;
printf("a=%d,b=%d,c=%d\n",a,b,c);
显示a=888,b=0,c=0 ------------------不正常

为什么??? 求解答!!!
搜索更多相关主题的帖子: int 求解 else 
2007-10-17 17:52
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
没不正常啊,if(0)啊,所以执行else,而b已经被赋值为0

简单的快乐着~
2007-10-17 17:56
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
[CODE]
int a=2,b=3,c=0;
if(a=b=c)
a=8;
else
a=888;
printf("a=%d,b=%d,c=%d\n",a,b,c);
显示a=888,b=0,c=0 ------------------不正常


[/CODE]
a=b=c的执行相当于a=(b=c),先执行b=c,表达式结果为0,再把0赋值给a,使得if中的整个表达式值为0。条件为假,执行a=888
所以最终a=888,b=0,c=0


所以情况4的最终结果是对的

[此贴子已经被作者于2007-10-17 18:07:36编辑过]


英者自知,雄者自胜
2007-10-17 18:06
vinyie
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-10-7
收藏
得分:0 
没有不正常,这是正确的结果!在情况四里,a,b,c的值均为0, if(a) 相当于是if (0),所以是执行else分支,。。。
2007-10-17 18:45
鸿工作室
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-10-14
收藏
得分:0 

已阅....






2007-10-17 19:00
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
逗号表达式也是值.
但建议不要这样写.

倚天照海花无数,流水高山心自知。
2007-10-17 19:18
lxm520910
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2007-10-3
收藏
得分:0 
a=b=c最后a,b都与c结果相同,下面就是判断执不执行if后的语句了,执行了a就会被重新赋值;不执行,a,b,c结果就会一样,都是c的值
2007-10-17 19:26
once_again
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-10-4
收藏
得分:0 
在C中,每个表达式都有它自己的值.如c=0;它的值就是0;而b=c=0,实际上是把"c=0"的值也就是0赋给了b,所以b也就为0了.而这个表达式的值也是0.
在你的程序中if(a=b=c),因为c=0,所以b=c的表达式为0,把b=c的表达式值付给a,所以a也就是0.整个a=b=c的表达式的值也就是0了.if(0)条件不成立,跳过.

要想学好六脉神剑就得先学好北冥神功!!!!
2007-10-17 19:51
ascend_0707
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-16
收藏
得分:0 
学习了***
2007-10-17 20:27
kingkong6358
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-10-11
收藏
得分:0 

学习了!!!!


2007-10-17 21:59
快速回复:[求助]a=b=c求解
数据加载中...
 
   



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

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