为什么变量y为0,不是2? [重复]

问题描述 投票:-3回答:1

这个问题在这里已有答案:

int x=0, y=0, z=0;
z = (x==1) && (y=2);
printf("%d ", y);

我想知道输出是0.为什么输出不是2?

c
1个回答
0
投票

由于C如何处理逻辑运算符:

由于x == 1返回“false”,因此无需检查RHS以便得出运算符&&的最终结果为false。因此,不对RHS进行评估,并且y保持其先前的值。

© www.soinside.com 2019 - 2024. All rights reserved.