【发布时间】:2021-11-21 06:03:33
【问题描述】:
我正在从 Kelley-Pohl 的 A Book on C 中学习 C,并且有一个我不明白的练习:
int a = 0, b = 0, x;
x = 0 && (a = b = 777);
printf("%d %d %d\n", a, b, x);
x = 777 || (a = ++b);
printf("%d %d %d\n", a, b, x);
他们只是说想象输出并将其与真实输出进行比较。我以为输出会是
777 777 0
778 778 1
但它是
0 0 0
0 0 1
【问题讨论】:
-
嗯,答案就在您的问题标题中。什么让你困惑?
-
您对短路评估的理解是什么?
-
你说得对,对不起,我的英语不好,所以我不太了解维基百科。谢谢大家
标签: c operators logical-operators short-circuiting