Skip to content

C++ Operators

Overview

C++ provides a rich set of operators for performing operations on variables and values. Many operators can be overloaded for user-defined types.

Arithmetic Operators

cpp
#include <iostream>

int main() {
    int a = 10, b = 3;
    
    std::cout << "Addition: " << (a + b) << std::endl;      // 13
    std::cout << "Subtraction: " << (a - b) << std::endl;   // 7
    std::cout << "Multiplication: " << (a * b) << std::endl; // 30
    std::cout << "Division: " << (a / b) << std::endl;       // 3 (integer division)
    std::cout << "Modulus: " << (a % b) << std::endl;        // 1
    
    // Increment and decrement
    int x = 5;
    std::cout << "Prefix increment: " << ++x << std::endl;  // 6
    std::cout << "Postfix increment: " << x++ << std::endl; // 6 (then x becomes 7)
    std::cout << "Current x: " << x << std::endl;          // 7
    
    return 0;
}

Relational and Logical Operators

cpp
#include <iostream>

int main() {
    int a = 10, b = 20;
    
    // Relational operators
    std::cout << "a == b: " << (a == b) << std::endl;  // 0 (false)
    std::cout << "a != b: " << (a != b) << std::endl;  // 1 (true)
    std::cout << "a < b: " << (a < b) << std::endl;    // 1 (true)
    std::cout << "a >= b: " << (a >= b) << std::endl;  // 0 (false)
    
    // Logical operators
    std::cout << "a < b && a > 5: " << (a < b && a > 5) << std::endl;  // 1 (true)
    std::cout << "a > b || a > 5: " << (a > b || a > 5) << std::endl;  // 1 (true)
    std::cout << "!(a == b): " << !(a == b) << std::endl;              // 1 (true)
    
    return 0;
}

Assignment Operators

cpp
#include <iostream>

int main() {
    int a = 10;
    
    a += 5;   // a = a + 5;  // 15
    a -= 3;   // a = a - 3;  // 12
    a *= 2;   // a = a * 2;  // 24
    a /= 4;   // a = a / 4;  // 6
    a %= 4;   // a = a % 4;  // 2
    
    std::cout << "Final value: " << a << std::endl;
    
    return 0;
}

Bitwise Operators

cpp
#include <iostream>

int main() {
    unsigned int a = 0b1010;  // 10
    unsigned int b = 0b1100;  // 12
    
    std::cout << "a & b: " << (a & b) << std::endl;    // 8 (0b1000)
    std::cout << "a | b: " << (a | b) << std::endl;    // 14 (0b1110)
    std::cout << "a ^ b: " << (a ^ b) << std::endl;    // 6 (0b0110)
    std::cout << "~a: " << (~a) << std::endl;          // bitwise NOT
    std::cout << "a << 2: " << (a << 2) << std::endl;  // 40 (0b101000)
    std::cout << "a >> 1: " << (a >> 1) << std::endl;  // 5 (0b0101)
    
    return 0;
}

Content is for learning and research only.