c语言 - 为什么我们不能在 switch 语句中使用关系表达式?



由于C中没有truefalse布尔类型,因此表达式x == y在为true和false时的求值结果是什么?

如果它的计算结果分别为1和0,这两个值都是整数,为什么我们不能对switch语句使用cases这样的表达式呢?

这背后的正确原因是:

  1. case只允许整数表达式或计算为整数的表达式,而x==y不会计算为整数(我不知道如何计算(?或
  2. 如果switch允许这样的表达式作为case,那么多个case很有可能最终具有相同的值,即无论何时x==y,我们都会得到1,因此多个这样的case的值将为1或0;这在switch语句中是不允许的

原因不是x==y类型,而是case取常数。CCD_ 9通常不是常数。

相关内容

  • 没有找到相关文章

最新更新