Comparison operators tell you how numerical values relate to one
another, such as whether they are equal to one another, or whether one
is greater than the other. Comparison operators are used in logical
tests, such as if statements. (See Decisions.)
The results of a logical comparison are always either true (1) or false
(0). In computer programming jargon, true and false are the two
Boolean values. Note that, unlike real life, there are no "gray
areas" in C; just as in Aristotelian logic, a comparison operator will
never produce a value other than true or false.
Six operators in C are used to make logical comparisons:
==
is equal to
!=
is not equal to
>
is greater than
<
is less than
>=
is greater than or equal to
<=
is less than or equal to
Important: Remember that many people confuse the equality operator
(==) with the assignment operator (=), and this is a major
source of bugs in C programs. (See Expressions and values, for more
information on the distinction between the == and =
operators.)
The operators above result in values, much as the addition operator
+ does. They produce Boolean values: true and false only.
Actually, C uses 1 for "true" and 0 for "false" when evaluating
expressions containing comparison operators, but it is easy to define
the strings TRUE and FALSE as macros, and they may well
already be defined in a library file you are using. (See Preprocessor directives, for information on defining macros.)
#define TRUE 1
#define FALSE 0
Note that although any non-zero value in C is treated as true,
you do not need to worry about a comparison evaluating to anything other
than 1 or 0. Try the following short program:
#include <stdio.h>
int main ()
{
int truth, falsehood;
truth = (2 + 2 == 4);
falsehood = (2 + 2 == 5);
printf("truth is %d\n", truth);
printf("falsehood is %d\n", falsehood);
exit (0);
}