标题:赋值表达示的问题??????
只看楼主
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
结帖率:100%
已结贴  问题点数:20 回复次数:10 
赋值表达示的问题??????
程序代码:
main ()
{
int x=4,y=0,z;
x*=2+3;printf("%d",x);
x*=y==(z=4);printf("%d",x);
}
结果为20  0   何解???
搜索更多相关主题的帖子: 赋值 表达 
2010-11-19 13:36
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:5 
x*=y==(z=4);
也就是z=4
y==4
x*=0
2010-11-19 13:42
cq7610
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:28
专家分:111
注 册:2010-11-17
得分:5 
x*=2+3 => x = x * (2 + 3),所以等于20
x*=y==(z=4) => (x = x * y) == (z = 4),逻辑表达式的值为0
2010-11-19 13:44
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:0 
以下是引用cq7610在2010-11-19 13:44:49的发言:

x*=2+3 => x = x * (2 + 3),所以等于20
x*=y==(z=4) => (x = x * y) == (z = 4),逻辑表达式的值为0
我解释过了 你不用解释了
2010-11-19 13:46
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
得分:5 
x*=2+3  等价于:x=x*(2+3)   x=4*5=20 了。
同样 X*Y=0   因为Y=0       我是这么理解的。
2010-11-19 13:46
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
得分:0 
不好意思。理解错了。
2010-11-19 13:49
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:0 
以下是引用刘定邦在2010-11-19 13:49:12的发言:

不好意思。理解错了。
你先回去看下书 基础不能太松
2010-11-19 13:50
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
得分:5 
回复 楼主 xufan123
这个问题。你只要清楚==的优先级高于=就可以了很好理解了。
不需要任何人给你解释了。

南国利剑
2010-11-19 14:23
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
得分:0 
以下是引用wujieru在2010-11-19 13:50:57的发言:

你先回去看下书 基础不能太松
瑾尊你老人家教侮!是还得再多看看书!!
2010-11-19 14:24
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
得分:0 
都有分,别伤和气!
2010-11-19 14:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-326241-1-1.html




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

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