#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); }
题目
#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?
答案
&&运算符是先计算左边表达式的值,如果左边表达式的值为0的话,就不执行右边表达式的值了.
而你左边表达式c=(a=c>x)的值已经为0了,所有程序根本就没有执行右边表达式的值,所以b的值没有发生变化.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点
- 方程x-60%x=160,x+20%x=240,怎么解
- Alice is there.Is this _____coat?填空
- We are going to have a field trip tomorrow morning.Please ____ some food ____ the picnic.
- 《三国演义》《西游记》《水浒传》《红楼梦》各有什么故事?(只写故事名称)
- 某国联赛有16支 足球俱乐部,若采用单循环赛制决出冠、亚军,一共要比赛多少场?要算式
- 某厂去年上半年和下半年的产值都达到计划年产量的65%,这样,全年共超产值120万元,去年计划产量多少万元?
- 汽车在减速行驶时,车受到的牵引力为何小于阻力
- 阿基米德原理是否与浸没有关
- 已知△ABC的周长为30cm,b+c=2a,b-c=4cm,则a=_ b=_
- abcd乘以d等于dcba,请用数字替换算式中的字母