# Logical Operators in C Languages

Logical Operators : C has the following three logical operators

• Logical AND - &&
• Logical OR - ||
• Logical NOT - !

The logical operators && and || are used, to test more than one condition and make decisions.

An expression which combines two or more relational expressions is termed as a logical expression or a compound relational expression. Like the simple relational expression, a logical expression also yields value of one or zero. True is taken as 1 and false is taken as 0.

The zero value is taken as false, while the non-zero value is taken as true. Logical AND, Logical OR are binary operators whereas Logical NOT is a unary operator.

The operator ! will be given the highest priority over && and || .

When equal priority operators are there in an expression, the operators will be evaluated from left to right i.e they follow left to right associativity. Logical NOT(!) follows right to left associativity.

# Logical AND :

The result of logical AND expression will be true only, when both the relational expressions are true.

Syntax : exp1 && exp2
Examples :
1. If a = 10, b = 5, c = 15 and i = (a > b) && (b < c);
The value of i in this expression will be 1.
2. If a = 10, b = 5, c = 15 and i = (a < b) && (b < c);
The value of i in this expression will be 0.

#### Truth table for Logical AND :

exp1 exp2 exp1 && exp2
T T T
T F F
F T F
F F F

# Logical OR :

The result of logical OR expression will be false only, when both the relational expressions are false.

Syntax : exp1 || exp2
Examples :
1. If a = 10, b = 5, c = 15 and i = (a < b) || (b < c);
The value of i in this expression will be 1.
2. If a = 10, b = 5, c = 15 and i = (a < b) && (b > c);
The value of i in this expression will be 0.

#### Truth table for Logical AND :

exp1 exp2 exp1 && exp2
F F F
F T T
T F T
T T T

# Logical NOT :

The result of logical NOT expression will be true, if the expression false and vice versa.

Syntax : ! exp1
Examples :
1. If a = 10, b = 5, c = 15 and i = !((a < b) && (b < c));
The value of i in this expression will be 1.
2. If x = 20 and i = !(x == 20)
The value of i will be 0, because x == 20 is true and !i = 0.

#### Truth table for Logical AND :

Exp !exp
T F
F T
De Morgan's Rule :
i. !(x && y) -> !x || !y
ii. !(x || y) -> !x && !y
Examples :
1. !(2 && 0) = 1 = !2 || !0
2. !(2 || -7) = 0 = !2 && !(-7)

Relative precedence of the relational and logical operators is as follows :

Highest !
> >= < <=
== !=
&&
|| Lowest
Example : The value is !(3 && 4 >= 7 || 6) is 1
Reactions