这个问题在这里已有答案:
int x=0, y=0, z=0; z = (x==1) && (y=2); printf("%d ", y);
我想知道输出是0.为什么输出不是2?
由于C如何处理逻辑运算符:
由于x == 1返回“false”,因此无需检查RHS以便得出运算符&&的最终结果为false。因此,不对RHS进行评估,并且y保持其先前的值。