程序说明

时间:2019-02-10 03:42:23

标签: c

下周是我的考试,我们收到了一堆问题,我们需要提供一些有效的解决方案,并提供给定的代码说明。我无法理解此代码。附加代码。

    #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。但是我不知道如何。

2 个答案:

答案 0 :(得分:3)

if(!a >= 400)

由于逻辑非!的优先级较高,因此等效于(!a) >= 400。左侧的计算结果为0(因为a为非零,所以!a0)使整个表达式为假。另外请注意,代码缩进对于编译器而言并不重要。

答案 1 :(得分:0)

以及其他人提到的内容:

  1. 缩进和大括号可帮助您轻松实现这一目的。

  2. 如所写,if语句仅适用于“ b = 500;”这一行。

  3. !a与a相反。
    > = 400为真 !a> = 400为假,因此不执行“ b = 500”。

  4. 结果b仍为100,c被分配为900