【发布时间】:2018-11-26 07:45:02
【问题描述】:
这里是代码
int main()
{
int i=-3, j=2, k=0, m;
m = ++i||++j&&++k;
printf("%d, %d, %d, %d\n", i, j, k, m);
return 0;
}
然后输出: -2, 2, 0, 1
但我不明白m = ++i||++j&&++k; 是如何执行的。
有人请解释..谢谢!
【问题讨论】:
-
但是 m 是如何增加的呢?
-
||和&&是逻辑运算符。它们的结果将始终为1或0,具体取决于表达式的计算结果是非零值还是零值。所以你基本上有这样的东西:if ((++i != 0) || (++j != 0) && (++k != 0)) { m = 1; } else { m = 0; }. -
我希望您知道,没有人会在现实世界的程序中真正编写这样的代码。
标签: c