c语言逻辑复合运算:!(x=a)&&(y=b)&&0

#include <stdio.h>
int main()
{
int a=3,b=4,c=5,x,y;
printf("%d\n",!(x=a)&&(y=b)&&0);
printf("%d,%d,%d",a,b,c);
return 0;
}
结果:
0
3,4,5
求运算顺序。。

1. (x=a) 运算后,x=3,表达式的值也是3
2. !(x=a) <==> !3 = 0
----
3. (y=b) 运算后,y=4,表达式的值也是4
----
4. !3&&4&&0 <==> 0&&4&&0 <==> 0&&0 <==> 0 (&&, 且运算,遇0得0)
----
a,b,c不变。还是3,4, 5
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-10
我加了这么一句printf("%d\n",y);
结果y的值不是4
可以得出先算!(x=a)
此处为假,则不再继续往下做y=b&&0了本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网