求解,为什么y的值还是3?

求解,为什么y的值还是3?


#include<stdio.h>
int main()
{
    int x = 2, y = 3, a;
    a = (!x-- && --y) ? 2 : 3;
    printf("x=%d,y=%d,a=%d", x, y, a);
    return 0;
}

img

(!x-- && --y),这里因为 !x = 0 ,0 && --y 有短路作用,--y 不会执行到。