Logical AND Operator [ HP C/iX Reference Manual ] MPE/iX 5.0 Documentation
HP C/iX Reference Manual
Logical AND Operator
The logical AND operator (&&) performs the logical AND function on its
operands.
Syntax
logical-AND-expression ::=
inclusive-OR-expression
logical-AND-expression && inclusive-OR-expression
Description
Each of the operands must have scalar type. The type of the left operand
need not be related to the type of the right operand. The result has
type int and has a value of 1 if both of its operands compare unequal to
0, and 0 otherwise. The result is not an lvalue.
The logical AND operator guarantees left-to-right evaluation. If the
first operand compares equal to zero, the second operand is not
evaluated.
This feature is useful for pointer operations involving pointers that can
be NULL. For example, the following statement:
if(p!=NULL && *p=='A') *p='B';
The first operand tests to see if pointer p is NULL. If p is NULL, an
indirect reference could cause a memory access violation. If p is
non-NULL, the second operand is safe to evaluate. The second expression
checks to see if p points to the character 'A'. If the second expression
is true, the && expression is true and the character that p points to is
changed to 'B'. Had the pointer been NULL, the if statement would have
failed and the pointer would not be used indirectly to test for the 'A'
character.
Example
var1 && var2
MPE/iX 5.0 Documentation