-1

既然 C 语言中没有true false布尔类型,那么表达式的x == y计算结果是什么,什么时候为真,什么时候为假?

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

这背后的正确原因是:

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

1 回答 1

5

原因不是 的类型,而是采用常数x==y的事实。通常不是一个常数。casex==y

于 2020-10-02T13:08:13.047 回答