小于(<)运算符如何使用c中的混合类型

Ast*_*isk 2 c comparison types operators

有人可以解释一下如何在C中工作吗?

特别是当左侧和右侧操作数的类型不同时它是如何工作的?

是根据第一个还是第二个的类型比较它们?

小智 10

C指定不同类型的标准转换.规则有点复杂,但基本上"较小"类型会暂时转换为较大的类型,因此,如果将int与char进行比较,则char将转换为int,仅用于比较.

  • 对此的术语是"通常的算术转换",您可以在Kernighan和Ritchie的*C编程语言*的索引中找到它.令人惊讶的是,有时签名的操作数被提升为无符号类型,因为另一个操作数是无符号的,因此大的正"unsigned int"可能被认为小于负的"int". (3认同)