if 判断的时候,不一定是用判断语句来判断。可以通过0和1分别来代表false和true。所以这里第一个if, 因为a是0,相当于false,所以不会执行。else if,因为非b,就是!b是false,所以不会执行。因为else if没被执行,里面的if 和else也不会执行。所以d就是压根没变,是最开始的初始值,就是20
第一个判断a=0条件不成立
b=1,!b条件为假 条件不成立 不走if else判断
b没有被重新赋值,等于初始值=20
if(a)和if(a!=0)等价 if(!a)和if(a==0)等价 这就能明白了吧
简单来说就是在if条件中0等同于false,1等同于true
if(a) 表示如果 a!=0,
a=c=0,走下一个判断,else if(!b) 表示b=0,不满足,
走下一个判断。你只写了两个情况的,则d没有被赋值,即为默认值。20
如有帮助,望采纳