C Operators

Operators in C are special symbols used to perform operations on variables and values. C provides a wide variety of operators for performing arithmetic, logical, relational, bitwise, and other operations. There are many types of Operators.

1. Arithmetic Operators

Arithmetic operators are used to perform basic mathematical operations like addition, subtraction, multiplication, division, and modulus.

Operator
Description
Example
+
Addition: Adds two operands.
a+b
Subtraction: Subtracts the second operand from the first.
a-b
*
Multiplication: Multiplies two operands.
a*b
/
Division: Divides the first operand by the second. Returns quotient.
a/b
%
Modulus: Returns the remainder of a division operation.
a%b

Example:


#include <stdio.h>

int main() {
    int a = 20;
    int b = 5;
    printf("Addition: %d\n", a + b);  
    printf("Subtraction: %d\n", a - b); 
    printf("Multiplication: %d\n",a * b); 
    printf("Division: %d\n", a / b); 
    printf("Modulus: %d\n", a % b);  
    return 0;
}

Output:

Addition: 25
Subtraction: 15
Multiplication: 100
Division: 4
Modulus: 0

2. Relational Operators

Relational operators are used to compare two values. They return true (1) if the condition is met, or false (0) if it is not.

Operator
Description
Example
==
Equal to: Returns true if both operands are equal.
a == b
!=
Not equal to: Returns true if operands are not equal.
a != b
>
Greater than: Returns true if the left operand is greater.
a > b
<
Less than: Returns true if the left operand is smaller.
a < b
>=
Greater than or equal to: Returns true if left operand is greater or equal.
a >= b
<=
Less than or equal to: Returns true if left operand is smaller or equal.
a <= b


Example:


#include <stdio.h>
int main() {
    int a = 20;
    int b = 5;
    printf("%d\n", a == b);  // Output: false
    printf("%d\n", a != b);  // Output: true
    printf("%d\n", a > b);  // Output: true
    printf("%d\n", a < b);  // Output: false
    printf("%d\n", a >= b);  // Output: true
    printf("%d\n", a <= b);  // Output: false
    return 0;
}

Output:

0
1
1
0
1
0

3. Logical Operators

Logical operators are used to perform logical operations on conditions. They return true (1) or false (0) based on the result of the operation.

Operator
Description
Example
&&
Logical AND: Returns true if both operands are true.
a && b
||
Logical OR: Returns true if at least one operands is true.
a || b
!
Logical NOT: Reverses the logical state of its operand.
!a


Example:


#include <stdio.h>
#include <stdbool.h>

int main() {
    bool a = true;
    bool b = false;

    printf("%d\n", a && b);  // Output: False (Both must be true)
    printf("%d\n", a || b);  // Output: True (At least one is true)
    printf("%d\n", !a);      // Output: False (Reverses the value)

    return 0;
}

Output:

0
1
0

4. Assignment Operators

Assignment operators are used to assign values to variables.

Operator
Description
Example
=
Assignment: Assigns the value on the right to the variable on the left.
a = b
+=
Add and assign: Adds the right operand to the left operand and assigns the result to the left operand.
a += b
-=
Subtract and assign: Subtracts the right operand from the left operand and assigns the result to the left operand.
a -= b
*=
Multiply and assign: Multiplies the left operand by the right operand and assigns the result to the left operand.
a *= b
/=
Divide and assign: Divides the left operand by the right operand and assigns the result to the left operand.
a /= b
%=
Modulus and assign: Takes the modulus of the left operand by the right operand and assigns the result to the left operand.
a %= b


Example:


#include <stdio.h>
int main() {
    int a = 20;
    a += 10;  // a = a + 10 => num = 30
    a -= 5;  // a = a - 5 => a = 25
    a *= 2;  // a = a * 2 => a = 50
    a /= 5;  // a = a / 5 => a = 10

    printf("%d\n",a);  // Output: 10

    return 0;
}

Output:

10

5.  Ternary Operator

The ternary operator is a shorthand version of the if-else statement. It has the following form.

Syntax:


condition ? expression_if_true : expression_if_false

Example:


#include <stdio.h>
int main() {
    int age = 19;
    char *result = (age >= 18) ? "Adult": "Not Adult";
    printf("%s",result);  // Output: Adult
   
    return 0;
}

Explanation: I changed the variable result to be a char* (pointer to char) because you are dealing with strings, not individual characters.

Output:

Adult

6. Unary Operators

These operators operate on a single operand.

Operator
Description
Example
++
Increment: Increases the operand by 1. Can be used in pre or post increment form.
++a or a++
--
Decrement: Decreases the operand by 1. Can be used in pre or post decrement form.
--a or a--
+
Unary plus: Indicates a positive value.
+a
-
Unary minus: Negates the operand.
-a
!
Logical NOT: Reverses the logical state of its operand.
!a


Example:


#include <stdio.h>

int main() {
    int x = 20;
    printf("%d\n",++x);  // Output: 21 (Pre-increment)
    printf("%d\n",x++);  // Output: 21 (Post-increment)
    printf("%d",x);    // Output: 22 (x is now 22)
  
   
    return 0;
}

Output:

21
21
22