Next: Shift Operations, Previous: Division and Remainder, Up: Arithmetic [Contents][Index]
There are two kinds of comparison operators: equality and ordering. Equality comparisons test whether two expressions have the same value. The result is a truth value: a number that is 1 for “true” and 0 for “false.”
a == b /* Test for equal. */ a != b /* Test for not equal. */
The equality comparison is written ==
because plain =
is the assignment operator.
Ordering comparisons test which operand is greater or less. Their results are truth values. These are the ordering comparisons of C:
a < b /* Test for less-than. */ a > b /* Test for greater-than. */ a <= b /* Test for less-than-or-equal. */ a >= b /* Test for greater-than-or-equal. */
For any integers a
and b
, exactly one of the comparisons
a < b
, a == b
and a > b
is true, just as in
mathematics. However, if a
and b
are special floating
point values (not ordinary numbers), all three can be false.
See Special Floating-Point Values, and Invalid Optimizations.