下周是我的考试,我们收到了一堆问题,我们需要提供一些有效的解决方案,并提供给定的代码说明。我无法理解此代码。附加代码。
#include <stdio.h>
int main()
{
int a = 800, b = 100, c;
if(!a >= 400)
b = 500;
c = 900;
printf("b = %d c = %d\n", b, c);
return 0;
}
此问题执行后的答案是b = 100和c = 900。但是我不知道如何。
答案 0 :(得分:3)
if(!a >= 400)
由于逻辑非!
的优先级较高,因此等效于(!a) >= 400
。左侧的计算结果为0
(因为a为非零,所以!a
为0
)使整个表达式为假。另外请注意,代码缩进对于编译器而言并不重要。
答案 1 :(得分:0)
以及其他人提到的内容:
缩进和大括号可帮助您轻松实现这一目的。
如所写,if语句仅适用于“ b = 500;”这一行。
!a与a相反。
> = 400为真
!a> = 400为假,因此不执行“ b = 500”。
结果b仍为100,c被分配为900