【发布时间】:2012-02-22 16:22:12
【问题描述】:
我正在研究 C 基础知识并试图解决以下问题,谁能解释为什么变量 c 的输出不同?
以下程序的输出是什么?
int main()
{
int a = -3, b = 2, c= 0, d;
d = ++a && ++b || ++c;
printf ("a = %d, b = %d, c = %d, d = %d", a, b, c, d);
}
答案:-2, 3, 0, 1
为什么c 在输出中没有增加?
【问题讨论】:
-
d = ( (-2 && 3) || (++c) )。它在到达 c 之前发生短路。
-
你到底想做什么?或者你只是在玩一些代码?
-
简单解c谜题
-
感谢大家的帮助。现在能够更好地了解情况。 :)
标签: c short-circuiting