int a=-1,b=4,k;K=(++a<0)&&!(b--<=0);printf ("%d %d\n",a,b);答案他的输出结果是 0 4b的值不是先参与运算以后自减了吗,为什么b的输出值还是4
++a是先加再赋值,b--是先赋值再减。但是&&在,所以直接判断失败,后面的就不执行/判断了。b--压根就没执行,只执行了++a
(++a<0) 这个式子先运算,得到 0 ,0 && (后面不管什么) 都得到 0 ,所以后面的表达式不会执行。
因为&&是逻辑与,有短路特性