首页 > 解决方案 > 用运算符判断真假

问题描述

又是我……很抱歉问了一些愚蠢的问题,但我是初学者,我真的很想学习编码……所以我有一个问题要意识到为什么这些总是正确的?它与运算符或 C 行为有关的东西是未定义的。?

   int x;
   int b;
   b = 1 < x < 10;
   printf("%d%d",b);
    char c = 'z';
    (c==' ') || (c='\t') || (c=='\n');
    printf("%c",c);

为什么那些总是正确的?是因为ASCII码还是什么?

标签: c

解决方案


常数 10 与布尔表达式的比较结果始终为真

您可以在此处看到C 运算符优先级的表,可以这样读取:

b = ((1 < x) < 10);

因为在 C 等语言中,关系运算符返回整数 0 或 1,其中 0 代表假,任何非零值都代表真。

所以存储在 b 中的值为 1(真)

还:

你没有初始化x,它应该有垃圾信息(可能!= false)

在你的第二个代码中,你是在分配而不是比较,(c='\t')这是故意的吗?这就是它打印“标签”的原因。


推荐阅读