首页 > 解决方案 > 关系运算符和运算符的优先级

问题描述

我用 C 语言执行了一个代码,但是我无法理解它的输出。

#include <stdio.h>

int main()
{
    int a=5;
    int b= ++a + 0!=0;
    printf("%d %d",++a, b);
    return 0;
}

上述程序的输出是

7 1

我无法理解为什么会这样。

标签: coutputoperatorsaddition

解决方案


操作顺序导致这被视为:

int b = (((++a) + 0) != 0);

所以:

int b = (6 != 0);

6 不是 0,所以它的值为 true aka 1。

int b = 1;

推荐阅读