#include main() { int a=5,b=6,c=1,x=2,y=3,z=4; c=(a=c>x)&&(b=y>z); printf("%d",b); }
为什么运行结果是6?
人气:469 ℃ 时间:2020-09-16 14:42:27
解答
&&运算符是先计算左边表达式的值,如果左边表达式的值为0的话,就不执行右边表达式的值了.
而你左边表达式c=(a=c>x)的值已经为0了,所有程序根本就没有执行右边表达式的值,所以b的值没有发生变化.
推荐
- #include main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf("%d,%d,%d\n",a,b,c); }
- #include struct ord { int x,y;} dt[2]={1,2,3,4}; main() {struct ord *p=dt; printf("%d,",++
- 一个长6米,宽3米,高2米的房间,放一根竹竿,竹竿最长多少米?
- (2012•顺义区二模)下列关于有机物的叙述正确的是( ) A.汽油、柴油和植物油都是碳氢化合物 B.棉花和合成纤维的主要成分均为纤维素 C.乙烯和苯蒸气都能使溴水褪色,不能鉴别乙烯
- 什么情况下1+1等于3?
- 商店运来一些水果,运来苹果20箱,梨的筐数是苹果的4|5,同时又是橘子的40%,运来橘子多少筐?
- have something real or solid to think about
- at first,i planned to take the plane的意思
猜你喜欢