C语言 请问为什么b--后值未发生改变?

为什么下面这个结果输出的是10而不是00啊?b做完判断以后不应该减一吗?

void main()
{
    int a = -1, b = 1;
    ((++a < 0) && (b-- <= 0));
     printf("%d%d\n", b, a);
}

而在前面加个!结果就是00了,不懂为什么加在a前面,会影响b的值。

void main()
{
    int a = -1, b = 1;
    (!(++a < 0) && (b-- <= 0));
     printf("%d%d\n", b, a);
}

求知道的人指点一下,谢谢。

((++a < 0) && (b-- <= 0)); ++a<0执行为false,后面的(b-- <= 0)就不会执行了,所以执行完这行代码,b=1,a=0。同理加了!号,前面为true,后面就会执行。你还需要好好看下C语言的基础,底子太薄了。