Table of Contents

    Logical Operators in C: Usage and Examples

    Logical Operators in C: Usage and Examples

    C language supports following 3 logical operators. Following table shows all the logical operators supported by C language.

    Operator Description Example
    && (logical and)  If both the operands are non-zero, then the condition becomes true. (0 && 1) is false
    || (logical or)  If any of the two operands are non-zero, then the condition becomes true. (0 || 1) is true
    (logical not) Logical NOT Operator Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false. !(0 && 1) is true

    Logical AND Operator

    Try the following example to understand the logical operators in C

    Program

    #include
    void main() {
    	int p = 0;
    	int q = 1; 
    	printf("p && q = %d \n",(p&&q)); 
    	 
     }

    Output

    p && q = 0
    Press any key to continue . . .

    Logical OR Operator

    Try the following example to understand the logical operators in C

    Program

    #include
    void main() {
    	int p = 0;
    	int q = 1; 
    	printf("p && q = %d \n",(p||q)); 
    	 
     }

    Output

    p && q = 1
    Press any key to continue . . .

    Logical NOT Operator

    Program

    Try the following example to understand the logical operators in C

    #include
    void main() {
    	int p = 0; 
    	printf("!p= %d \n",(!p)); 
    	 
     }

    Output

    !p= 1
    Press any key to continue . . .

    Logical Operators Example

    Program

    Try the following example to understand the logical operators available in C

    // C Program to demonstrate the working of logical operators
    
    #include
    int main()
    {
        int a = 10, b = 10, c = 20, result;
    
        result = (a == b) && (c > b);
        printf("(a == b) && (c > b) equals to %d \n", result);
    
        result = (a == b) && (c < b);
        printf("(a == b) && (c < b) equals to %d \n", result);
    
        result = (a == b) || (c < b);
        printf("(a == b) || (c < b) equals to %d \n", result);
    
        result = (a != b) || (c < b);
        printf("(a != b) || (c < b) equals to %d \n", result);
    
        result = !(a != b);
        printf("!(a == b) equals to %d \n", result);
    
        result = !(a == b);
        printf("!(a == b) equals to %d \n", result);
    
        return 0;
    }

    Output

    (a == b) && (c > b) equals to 1
    (a == b) && (c < b) equals to 0
    (a == b) || (c < b) equals to 1
    (a != b) || (c < b) equals to 0
    !(a == b) equals to 1
    !(a == b) equals to 0
    Press any key to continue . . .

    Explanation of logical operator program

    • (a == b) && (c > 10) evaluates to 1 because both operands (a == b) and (c > b) is 1 (true).
    • (a == b) && (c < b) evaluates to 0 because operand (c < b) is 0 (false).
    • (a == b) || (c < b) evaluates to 1 because (a = b) is 1 (true).
    • (a != b) || (c < b) evaluates to 0 because both operand (a != b) and (c < b) are 0 (false).
    • !(a != b) evaluates to 1 because operand (a != b) is 0 (false). Hence, !(a != b) is 1 (true).
    • !(a == b) evaluates to 0 because (a == b) is 1 (true). Hence, !(a == b) is 0 (false).