int a 1,b 1,l 1执行语句l(a 0b 0)则逻辑值是多少

2021-02-25 06:59:57 字数 1181 阅读 9074

1楼:修者世界

应该是1,你这里a,b都用的是赋值=符号而不是等于==符号

2楼:匿名用户

结果为0

(a=0) 结果为0 (b=0)也为0

i=0&&0 还是0

c语言中,a=-1,b=1;if((++a<0)&&!(b--<=0))

3楼:青水之畔

++a,先将a加1,再判断,

a=0,(++a<0)为假,值为0

b--,先进行判断,再减一,b=1,所以(b--<=0)值为假,因逻辑是与,(++a<0)为假,整个表达式必为假,此时便不再算后面的表达式,因此,b的值并没有减1.

结果(++a<0)&&!(b--<=0)值为0,a为0,b为1

4楼:匿名用户

(++a<0)&&!(b--<=0)

运算级() > ++ > -- > < > <= > ! >&&

执行顺序

++a<0其中先++a=0 ++a<0 不成立 值为0&&两边都成立值为1

只要有0就不成立

所以后面的就短路了

后面根本就没有执行

单纯执行到++a<0就结束了

if的执行体不执行.....

5楼:浪人

++a是先算a=a+1再把a的值作为(++a)的值,如当a=-1时则(++a)=0;a=0.

b--则是

先将b的值作为b--的值,在执行b=b-1,如当b=1时则(b--)=1,b=0;

&&是数学中并的关系,!则是对()里的否定,如果()里的表达式成立则,!()不立,!的运算级高所以先执行!(),在执行&&。

6楼:匿名用户

1 if 里面有两个判断语句, 如果第一个为false,不管第二个为false或者为ture,结果都为false,所以如果第一个为false,就没有必要执行第二个了,程序就是这么做的。

2 在你的判断中++a结果0.很显然0<0 是false,所以此时你整个判断语句就为false。下面即使再有n个条件也不会去判断了。

7楼:匿名用户

++a<0 先判断a是否大于0 然后再加1 b--<=0 先b—1 然后再判断<=0