Operators in C++
What are operators?
Operators are symbols that tell C++ to do something with values — add them, compare them, combine conditions, and so on. Learning the main groups covers almost everything you need for day-to-day code.
Arithmetic operators
| Operator | Meaning | Example (a=7, b=2) |
|---|---|---|
+ | Add | a + b → 9 |
- | Subtract | a - b → 5 |
* | Multiply | a * b → 14 |
/ | Divide | a / b → 3 |
% | Remainder | a % b → 1 |
7 / 2 gives 3, not 3.5, because both are integers. Make one a double — 7.0 / 2 — to keep the decimals.
Relational operators
These compare two values and give a bool (true or false): == equal, != not equal, <, >, <=, >=.
cout << (5 > 3) << " " << (5 == 3); // prints 1 0
Logical operators
These combine conditions: && (AND, both true), || (OR, at least one true), ! (NOT, flips it).
int age = 20; bool ok = (age >= 18) && (age < 60); // true
Assignment & compound
= assigns; compound forms combine an operation with assignment: +=, -=, *=, /=, %=.
int total = 10; total += 5; // same as total = total + 5; → 15 total *= 2; // → 30
Increment and decrement
++ adds one, -- subtracts one. Placement matters when used inside a bigger expression:
int i = 5; cout << i++ << "\n"; // prints 5, then i becomes 6 cout << ++i << "\n"; // i becomes 7, then prints 7
5
7
The ternary operator
A one-line if-else that produces a value:
int x = 8, y = 12; int max = (x > y) ? x : y; // 12 cout << "Larger: " << max;
Larger: 12
Operator precedence
Like maths, some operators bind tighter than others: * and / before + and -, comparisons before && and ||. When in doubt, add parentheses:
int r = 2 + 3 * 4; // 14, not 20 int r2 = (2 + 3) * 4; // 20
Common mistakes
- Using
=(assign) where you meant==(compare) in anif. - Expecting
/on two ints to keep decimals — it does not. - Confusing
i++and++iinside a larger expression. - Forgetting precedence and getting a surprising result — use parentheses.
Read two integers and print their sum, difference, product, integer quotient and remainder. Then use the ternary operator to print which one is larger.
Summary
- Arithmetic:
+ - * / %; watch integer division. - Relational and logical operators give
true/false. - Compound assignment (
+=etc.) shortens common updates. ++/--pre vs post matters inside expressions.- The ternary
?:is a compact if-else; parentheses control precedence.
Frequently Asked Questions
What are operators in C++?
+ for addition or == for comparison. C++ groups them into arithmetic, relational, logical, assignment, bitwise and a few special operators like increment and the ternary.What is the difference between = and == in C++?
= is the assignment operator, which stores a value in a variable. A double == is the equality operator, which compares two values and gives true or false. Mixing them up, especially inside if conditions, is a very common bug.What is the difference between ++i and i++ in C++?
i by one, but they differ in what they evaluate to. Pre-increment ++i increases first and then gives the new value, while post-increment i++ gives the old value first and then increases. The difference only matters when the result is used in a larger expression.What is the ternary operator in C++?
?: is a compact if-else that returns a value. In condition ? a : b, if the condition is true the result is a, otherwise it is b. It is handy for short choices like max = (x > y) ? x : y;.What is operator precedence in C++?
Operators क्या हैं?
Operators वे प्रतीक हैं जो C++ को values के साथ कुछ करने को कहते हैं — जोड़ना, तुलना, conditions जोड़ना, इत्यादि। मुख्य समूह सीखना रोज़मर्रा के code के लिए लगभग सब कुछ कवर कर देता है।
Arithmetic operators
| Operator | अर्थ | उदाहरण (a=7, b=2) |
|---|---|---|
+ | जोड़ | a + b → 9 |
- | घटाव | a - b → 5 |
* | गुणा | a * b → 14 |
/ | भाग | a / b → 3 |
% | शेषफल | a % b → 1 |
7 / 2 3 देता है, 3.5 नहीं, क्योंकि दोनों integers हैं। दशमलव रखने को एक को double बनाएँ — 7.0 / 2।
Relational operators
ये दो values की तुलना करके एक bool (true या false) देते हैं: == बराबर, != बराबर नहीं, <, >, <=, >=।
cout << (5 > 3) << " " << (5 == 3); // 1 0 print karta hai
Logical operators
ये conditions जोड़ते हैं: && (AND, दोनों true), || (OR, कम-से-कम एक true), ! (NOT, इसे पलटता है)।
int age = 20; bool ok = (age >= 18) && (age < 60); // true
Assignment और compound
= assign करता है; compound रूप एक संक्रिया को assignment से जोड़ते हैं: +=, -=, *=, /=, %=।
int total = 10; total += 5; // total = total + 5 jaisa; → 15 total *= 2; // → 30
Increment और decrement
++ एक जोड़ता है, -- एक घटाता है। किसी बड़े expression में इस्तेमाल होने पर स्थान मायने रखता है:
int i = 5; cout << i++ << "\n"; // 5 print, phir i 6 ho jata hai cout << ++i << "\n"; // i 7 ho jata hai, phir 7 print
5
7
Ternary operator
एक-line का if-else जो value देता है:
int x = 8, y = 12; int max = (x > y) ? x : y; // 12 cout << "Larger: " << max;
Larger: 12
Operator precedence
गणित की तरह, कुछ operators दूसरों से ज़्यादा कसकर बँधते हैं: + और - से पहले * और /, && तथा || से पहले तुलनाएँ। संदेह हो तो कोष्ठक जोड़ें:
int r = 2 + 3 * 4; // 14, 20 nahi int r2 = (2 + 3) * 4; // 20
आम गलतियाँ
ifमें==(तुलना) की जगह=(assign) इस्तेमाल करना।- दो ints पर
/से दशमलव रखने की उम्मीद करना — यह नहीं रखता। - बड़े expression के अंदर
i++और++iको भ्रमित करना। - Precedence भूलकर चौंकाने वाला परिणाम पाना — कोष्ठक इस्तेमाल करें।
दो integers पढ़ें और उनका योग, अंतर, गुणनफल, integer भागफल और शेषफल print करें। फिर ternary operator से print करें कि कौन-सा बड़ा है।
सारांश
- Arithmetic:
+ - * / %; integer division का ध्यान रखें। - Relational और logical operators
true/falseदेते हैं। - Compound assignment (
+=आदि) आम updates छोटा करता है। ++/--pre बनाम post expressions के अंदर मायने रखता है।- Ternary
?:संक्षिप्त if-else है; कोष्ठक precedence नियंत्रित करते हैं।