我正在寻找减少线路使用的方法并遇到了这个并且它似乎工作正常。我在网上找不到任何关于它的信息,有人能解释一下这是怎么回事吗?假设它甚至会运行,我仍然希望 x++ 的计算结果为 false,因此 y 的值不会增加。但确实如此!
#include <stdio.h>
int main(void)
{
int x;
int y;
x = 4;
y = 7;
x++ && y++;
printf("%d\n%d", x, y);
return (0);
}
>> 5
8
编辑:我的项目的每个函数有 25 行的函数限制,这就是为什么我必须减少几行的原因。
编辑 2:我的所有代码都受制于严格的语法和格式检查器,该检查器禁止使用“x++,y++;”和任何其他多行语句,所以我只是在寻找一个“hack”来从我的程序中切断一行并且不知道为什么 ^^ 对我有用!感谢大家的回复!
最佳答案
逻辑运算符&&
和||
使用short-circuit evaluation .
对于左侧,总是 求值。对于 &&
,如果左侧为“true”,则右侧也会被评估。对于 ||
则相反,如果左侧为“false”,则对右侧求值。
在 C 中,任何非零的都是“真”。只有零是“假”。
关于c - 为什么代码 "x++ && y++;"在没有控制运算符的情况下可以在 C 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53033350/