damon2009a 发表于 2020-4-19 16:20:49

s1e10

为什么运行结果与小甲鱼不同
代码如下
        printf("%d\n",3 > 2 && 1 < 2);
        printf("%d\n",3 + 1 || 2 == 0);
        printf("%d\n",!(a + b));
        printf("%d\n",!0 + 1 > 1 || !(3 + 4));
        printf("%d\n",'a' - 'b' && 'c');
小甲鱼的运行结果是11001
我的运行结果却是11011
求大佬帮忙

liuzhengyuan 发表于 2020-4-19 16:41:14

本帖最后由 liuzhengyuan 于 2020-4-19 16:44 编辑

printf("%d\n",!0 + 1 > 1 || !(3 + 4));
这行代码按理来说应该是 1

@小甲鱼 错了

liuzhengyuan 发表于 2020-4-19 16:45:42

@不二如是

永恒的蓝色梦想 发表于 2020-4-19 17:07:05

liuzhengyuan 发表于 2020-4-19 16:41
这行代码按理来说应该是 1

@小甲鱼 错了

同意,我这跑着也是1

jkluoling1992 发表于 2020-4-19 17:21:42

!0 + 1 > 1只跑了这部分,后面的或运算以及之后都不会执行了,
!非优先级高于 + 加 高于 > 大于,,
所以前面这算出来已经是1 ,或上后面任何数都是1了
页: [1]
查看完整版本: s1e10