【发布时间】:2019-04-01 16:01:33
【问题描述】:
我一直在寻找减少线路使用的方法,但遇到了这个问题,它似乎工作正常。我在网上找不到任何关于它的信息,有人可以解释发生了什么吗?假设它甚至会运行,我仍然希望 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++;"和任何其他多行语句,所以我只是在寻找一个“黑客”来从我的程序中切断一行,但不知道为什么 ^^ 对我有用!谢谢大家的回复!
【问题讨论】:
-
在这个程序中,
x++的计算结果为 4,它非零,因此为“真”。 -
另外,现在“减少线路使用”通常被认为是不好的风格。
-
“我一直在寻找减少线路使用量的方法” 除非您正在打代码高尔夫,否则请不要将此作为目标。而是专注于编写易于理解的简洁代码。
-
x++ && y++;此行计算为真或假,任何不同于零的 val 为真。如果你替换
x=0,你会得到x=1 and y=7。因为第一个条件是假的。 -
“我不得不减少行数以满足每个函数 25 行的项目要求”然后将你的函数拆分成更小的函数??
标签: c math operators logical-operators