# Relational Operators

suggest change

Relational operators check if a specific relation between two operands is true. The result is evaluated to 1 (which means true) or 0 (which means false). This result is often used to affect control flow (via `if`, `while`, `for`), but can also be stored in variables.

## Equals “==”

Checks whether the supplied operands are equal.

``````1 == 0;         /* evaluates to 0. */
1 == 1;         /* evaluates to 1. */

int x = 5;
int y = 5;
int *xptr = &x, *yptr = &y;
xptr == yptr;   /* evaluates to 0, the operands hold different location addresses. */
*xptr == *yptr; /* evaluates to 1, the operands point at locations that hold the same value. */``````

Attention: This operator should not be confused with the assignment operator (`=`)!

## Not equals “!=”

Checks whether the supplied operands are not equal.

``````1 != 0;         /* evaluates to 1. */
1 != 1;         /* evaluates to 0. */

int x = 5;
int y = 5;
int *xptr = &x, *yptr = &y;
xptr != yptr;   /* evaluates to 1, the operands hold different location addresses. */
*xptr != *yptr; /* evaluates to 0, the operands point at locations that hold the same value. */``````

This operator effectively returns the opposite result to that of the equals (`==`) operator.

## Not “!”

Check whether an object is equal to `0`.

The `\!` can also be used directly with a variable as follows:

``!someVal``

This has the same effect as:

``someVal == 0``

## Greater than “>”

Checks whether the left hand operand has a greater value than the right hand operand

``````5 > 4      /* evaluates to 1. */
4 > 5      /* evaluates to 0. */
4 > 4      /* evaluates to 0. */``````

## Less than “<”

Checks whether the left hand operand has a smaller value than the right hand operand

``````5 < 4      /* evaluates to 0. */
4 < 5      /* evaluates to 1. */
4 < 4      /* evaluates to 0. */``````

## Greater than or equal “>=”

Checks whether the left hand operand has a greater or equal value to the right operand.

``````5 >= 4      /* evaluates to 1. */
4 >= 5      /* evaluates to 0. */
4 >= 4      /* evaluates to 1. */``````

## Less than or equal “<=”

Checks whether the left hand operand has a smaller or equal value to the right operand.

``````5 <= 4      /* evaluates to 0. */
4 <= 5      /* evaluates to 1. */
4 <= 4      /* evaluates to 1. */``````