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;
}