C语言 w=3,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)||(b=y>z);后,a,b的值为?

b的值为什么是2呢?那个“或”有什么作用么?
2024-11-27 06:13:01
推荐回答(5个)
回答1:

楼主你好,
这里我先跟你说一下这个或是什么意思,或的意思就是,两个条件只要满足一个就为真。这个跟数学中的或是一样的意思。A||B,那么A为真的话,不管B是否为真,这个表达式就为真,

现在跟你说一下这个表达式
先看a=w>x,相当于a=(w>x),w>x显然为真,所以这个表达就为1,所以a=1,所以a=w>x就为真
中间用的是或,所以后面的表达式就不会执行,没有意义,因为这个表达式已经为真了。

不懂可以追问

回答2:

这整句是一个判断。 左右里面又有判断。
w大于x 所以a等于一个正整数,值不一定,依据平台而定。
楼上正解 。因为存在 || 所以后面半句不会执行。所以b等于2 而不会等于0

回答3:

选b
解释:
w>x不成立,所以a=0,那么&&运算符的左值(a=w>x)整体为false;
因为&&的短路效果,就是左值为false,则不计算右侧表达式;
所以b还是为最初赋值的6
综上:a=0,b=6

回答4:

|| 就是短路或,即(a=w>x)非零的时候,编译器就不会执行|| 后面的内容,因为没必要判断后面的真假,就能去判断(a=w>x)||(b=y>z) 表达式的真假了。

回答5:

a=1;b=0总的执行结果是1【简单的与或运算】