Coming Soon
This lesson is currently being developed
Introduction to operators
Overview of operator concepts you'll master in this chapter.
What to Expect
Comprehensive explanations with practical examples
Interactive coding exercises to practice concepts
Knowledge quiz to test your understanding
Step-by-step guidance for beginners
Development Status
Content is being carefully crafted to provide the best learning experience
Preview
Early Preview Content
This content is still being developed and may change before publication.
Operators - Terminology Reference
This lesson provides a comprehensive reference of all the key operator terminology you'll encounter throughout this chapter. Think of it as your operator vocabulary guide - these are the essential terms every C++ programmer needs to know when working with mathematical operations, comparisons, and logical expressions.
Complete Terminology Guide
Operator Fundamentals
| Term | Definition | Example | Usage |
|---|---|---|---|
| Operator | A symbol that performs an operation on one or more values (operands) | +, -, *, / |
Mathematical operations |
| Operand | The values that operators work with | In 5 + 3, both 5 and 3 are operands |
Input to operations |
| Expression | A combination of operands and operators that produces a result | x + y * 2 |
Computational statements |
| Evaluation | The process of calculating an expression's result | 2 + 3 * 4 becomes 14 |
Getting results |
| Binary operator | Operator that works with two operands | +, -, *, / |
Most common type |
| Unary operator | Operator that works with one operand | -x, ++x, !flag |
Single operand operations |
| Ternary operator | Operator that works with three operands | condition ? a : b |
Conditional expressions |
Arithmetic Operators
| Operator | Name | Description | Example | Result Type | Notes |
|---|---|---|---|---|---|
| + | Addition | Adds two numbers together | 5 + 3 |
Numeric | Basic arithmetic |
| - | Subtraction | Subtracts second number from first | 10 - 4 |
Numeric | Order matters |
| * | Multiplication | Multiplies two numbers | 6 * 7 |
Numeric | Higher precedence |
| / | Division | Divides first number by second | 15 / 3 |
Numeric | Watch for integer division |
| % | Modulus/Remainder | Returns remainder after integer division | 7 % 3 |
Integer | Only for integers |
| - | Unary minus | Makes a number negative | -x |
Numeric | Sign change |
| + | Unary plus | Explicitly makes a number positive | +x |
Numeric | Rarely used |
Assignment Operators
| Operator | Name | Description | Example | Equivalent |
|---|---|---|---|---|
| = | Assignment | Assigns value to variable | x = 5 |
N/A |
| += | Addition assignment | Adds value to variable | x += 3 |
x = x + 3 |
| -= | Subtraction assignment | Subtracts value from variable | x -= 2 |
x = x - 2 |
| *= | Multiplication assignment | Multiplies variable by value | x *= 4 |
x = x * 4 |
| /= | Division assignment | Divides variable by value | x /= 2 |
x = x / 2 |
| %= | Modulus assignment | Sets variable to remainder | x %= 3 |
x = x % 3 |
Increment/Decrement Operators
| Operator | Name | Description | Example | When Evaluated | Result |
|---|---|---|---|---|---|
| ++x | Pre-increment | Increments x, then uses new value | ++count |
Before use | New value |
| x++ | Post-increment | Uses current value of x, then increments | count++ |
After use | Old value |
| --x | Pre-decrement | Decrements x, then uses new value | --count |
Before use | New value |
| x-- | Post-decrement | Uses current value of x, then decrements | count-- |
After use | Old value |
Comparison/Relational Operators
| Operator | Name | Description | Example | Result | Usage |
|---|---|---|---|---|---|
| == | Equality | Tests if two values are equal | x == 5 |
bool | Exact comparison |
| != | Inequality | Tests if two values are different | x != 0 |
bool | Not equal test |
| < | Less than | Tests if left value is smaller | x < 10 |
bool | Ordering |
| > | Greater than | Tests if left value is larger | x > 5 |
bool | Ordering |
| <= | Less than or equal | Tests if left value is smaller or same | x <= 100 |
bool | Inclusive bound |
| >= | Greater than or equal | Tests if left value is larger or same | x >= 0 |
bool | Inclusive bound |
Logical Operators
| Operator | Name | Description | Example | Result | Short-circuit |
|---|---|---|---|---|---|
| && | Logical AND | True if both operands are true | x > 0 && x < 10 |
bool | Yes |
| || | Logical OR | True if at least one operand is true | x < 0 || x > 10 |
bool | Yes |
| ! | Logical NOT | Reverses the boolean value | !isReady |
bool | No |
Operator Precedence & Associativity
| Term | Definition | Example | Importance |
|---|---|---|---|
| Precedence | Rules determining which operations are performed first | 2 + 3 * 4 = 2 + 12 = 14 |
Correct evaluation |
| Associativity | Direction of evaluation for operators of same precedence | a - b - c = (a - b) - c |
Left-to-right |
| Left associative | Operators evaluated from left to right | Most operators | Default direction |
| Right associative | Operators evaluated from right to left | Assignment operators | Special cases |
| Parentheses | Override precedence by forcing evaluation order | (2 + 3) * 4 = 20 |
Explicit control |
| Order of operations | Same as precedence, determines calculation sequence | PEMDAS-like rules | Mathematical rules |
Precedence Levels (High to Low)
| Level | Operators | Description | Associativity |
|---|---|---|---|
| 1 | (), [] |
Parentheses, array subscript | Left-to-right |
| 2 | !, ++, --, unary -/+ |
Unary operators | Right-to-left |
| 3 | *, /, % |
Multiplicative operators | Left-to-right |
| 4 | +, - |
Additive operators | Left-to-right |
| 5 | <, <=, >, >= |
Relational operators | Left-to-right |
| 6 | ==, != |
Equality operators | Left-to-right |
| 7 | && |
Logical AND | Left-to-right |
| 8 | || |
Logical OR | Left-to-right |
| 9 | ?: |
Conditional (ternary) | Right-to-left |
| 10 | =, +=, -=, etc. |
Assignment operators | Right-to-left |
Conditional (Ternary) Operator
| Term | Definition | Syntax | Example |
|---|---|---|---|
| Conditional operator | Three-part operator for inline conditional expressions | condition ? value1 : value2 |
x > 0 ? x : -x |
| Ternary operator | Another name for conditional operator (has three operands) | Same syntax | Same example |
| Condition | Boolean expression that determines which value to choose | First part before ? |
x > 0 |
| True value | Value returned if condition is true | Between ? and : |
x |
| False value | Value returned if condition is false | After : |
-x |
Comma Operator
| Term | Definition | Example | Usage |
|---|---|---|---|
| Comma operator | Evaluates expressions left to right, returns rightmost result | x = (a++, b++, c) |
Sequential operations |
| Expression sequencing | Using comma to execute multiple expressions in sequence | Loop initialization | Complex statements |
| Side effect | Operation that modifies state beyond returning a value | Variable modification | Important for comma |
Type Conversions in Expressions
| Term | Definition | Example | Safety Level |
|---|---|---|---|
| Implicit conversion | Automatic type conversion by compiler | int + double |
Can be risky |
| Type promotion | Converting smaller types to larger ones | char to int |
Usually safe |
| Arithmetic conversion | Rules for mixing different numeric types in expressions | int * double = double |
Follows patterns |
| Narrowing conversion | Converting larger types to smaller ones | double to int |
Can lose data |
| Widening conversion | Converting smaller types to larger ones | int to double |
Generally safe |
Side Effects
| Term | Definition | Example | Concern |
|---|---|---|---|
| Side effect | An operation that modifies program state beyond returning a value | x++, assignment |
Order of evaluation |
| Sequence point | Points in code where all side effects are guaranteed to be complete | End of statements | Predictable behavior |
| Undefined behavior | When side effect order is not specified by language | x++ + ++x |
Unpredictable results |
Floating-Point Considerations
| Term | Definition | Example | Issue |
|---|---|---|---|
| Floating-point comparison | Comparing decimal numbers for equality | 0.1 + 0.2 == 0.3 |
May fail due to precision |
| Precision error | Small inaccuracies in floating-point calculations | Rounding errors | Affects equality tests |
| Epsilon comparison | Comparing floats within a small tolerance | abs(a - b) < 0.0001 |
Better than exact equality |
Boolean Context
| Term | Definition | Example | Conversion Rules |
|---|---|---|---|
| Boolean context | Places where values are treated as true or false | if statements, while loops |
Implicit conversion |
| Truthy value | Non-boolean value that converts to true | Non-zero numbers, non-null pointers | Language rules |
| Falsy value | Non-boolean value that converts to false | Zero, null pointer | Language rules |
Short-Circuit Evaluation
| Term | Definition | Example | Benefit |
|---|---|---|---|
| Short-circuit evaluation | Stopping logical evaluation early when result is determined | false && anything |
Performance, safety |
| Lazy evaluation | Another term for short-circuit evaluation | Same concept | Efficiency |
| Early termination | Skipping unnecessary computations | ptr != nullptr && *ptr > 0 |
Prevents crashes |
Common Pitfalls
| Term | Definition | Example | Prevention |
|---|---|---|---|
| Assignment vs equality | Confusing = with == |
if (x = 5) vs if (x == 5) |
Careful reading |
| Integer division | Division between integers discards fractional part | 7 / 3 = 2, not 2.33 |
Use floating-point |
| Operator precedence error | Misunderstanding evaluation order | 2 + 3 * 4 assumptions |
Use parentheses |
| Side effect order | Undefined behavior from multiple side effects | x++ + ++x |
Avoid in same expression |
How to Use This Reference
- Before writing expressions - Review precedence and associativity rules
- When debugging calculations - Check operator precedence and evaluation order
- For boolean logic - Understand short-circuit evaluation and logical operators
- When comparing values - Know the difference between assignment and equality
- For performance optimization - Consider short-circuit evaluation benefits
Study Tips
• Practice precedence rules - Work through complex expressions step by step
• Learn common pitfalls - Avoid assignment vs equality confusion
• Understand short-circuiting - Use logical operators efficiently and safely
• Master the ternary operator - Write concise conditional expressions
Ready for Operators?
Now that you have the complete operators terminology reference, you're prepared to work with mathematical operations, comparisons, and logical expressions effectively in C++.
Begin with "Operator precedence and associativity" to start learning how C++ evaluates complex expressions. Use this reference whenever you encounter unfamiliar operator concepts!
Explore More Courses
Discover other available courses while this lesson is being prepared.
Browse CoursesLesson Discussion
Share your thoughts and questions