刚刚提出了一个我忽略的基本编程问题。
int a = 2, b = 3, c = 5;
if (!a == b)
c = a--;
else
c = ++b;
printf("%d %d %d\n", a, b, c);
我认为输出应该是2 4 4。 任何人都可以帮助验证我是对还是错?为什么?
答案 0 :(得分:1)
你是对的:!a
给你0
而0 == b
是0
,
因此,c = ++b
提供b = 4
和c = 4
。 a
未更改。
答案 1 :(得分:0)
由于!
的优先级高于==
,if
的条件将为false ((!a) == b) -> (0 == 3)
。所以else将被执行,而b和c都将被设置为4.你是对的。