求解,为什么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; }
(!x-- && --y),这里因为 !x = 0 ,0 && --y 有短路作用,--y 不会执行到。