HP C/iX Reference Manual (31506-90011)
Chapter 5 77
Expressions
Equality Operators
Equality Operators
The equality operators equal-to (==) and not-equal-to (!=) compare two operands.
Syntax
equality-expression
:=
relational-expression
equality-expression relational-expression
equality-expression
!=
relational-expression
Description
The usual arithmetic conversions are performed on the operands if both have arithmetic
type. Both operands must be arithmetic, or both operands must be pointers to the same
type, or one operand can be a pointer and the other a null pointer constant or a pointer to
void.
Both of the operators (equal) and != (not equal) yield 1 if the specified relation is true;
otherwise they will yield 0. The result is of type int and is not an lvalue.
The and != operators are analogous to the relational operators except for their lower
precedence. This means that the expression a<bc<d is true if and only if a<b and c<d have
the same truth value.
Use caution with the operator. It resembles the assignment operator (=) and is often
pronounced the same when programs are read. Further, you can use the operator in
expressions syntactically the same as you would the = operator. For example, the
statements
if(ab) return 0;
if(a=b) return 0;
look very much alike, but are very different. The first statement says "if a is equal to b,
return a value of zero." The second statement says "store b into a and if the value stored is
nonzero, return a value of zero."
Examples
var1==var2
var1!=var2