求解,为什么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;
}
求解,为什么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 不会执行到。