bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/C++/C++ Tutorial
C++•C++ Tutorial

C++ Operator Precedence

Operator Precedence

When a calculation contains more than one operator, C++ follows order of operations rules to decide which part to calculate first.

For example, multiplication happens before addition:

Example

int result1 = 2 + 3 * 4;     // 2 + 12 = 14
int result2 = (2 + 3) * 4;   // 5 * 4 = 20
cout << result1 << "\n";
cout << result2 << "\n";

Why Does This Happen?

In 2 + 3 * 4 , the multiplication is done first, so the answer is 14 .

If you want the addition to happen first, you must use parentheses: (2 + 3) * 4 , which gives 20 .

Tip

Always use parentheses ( ) if you want to make sure the calculation is done in the order you expect. It also makes your code easier to read.

Order of Operations

Here are some common operators in C++, from highest to lowest priority:

  • () - Parentheses
  • * , / , % - Multiplication, Division, Modulus
  • + , - - Addition, Subtraction
  • > , < , >= , <= - Comparison
  • == , != - Equality
  • && - Logical AND
-- Logical OR
  • = - Assignment

Another Example

Subtraction and addition are done from left to right, unless you add parentheses:

Example

int result1 = 10 - 2 + 5;    // (10 - 2) + 5 = 13
int result2 = 10 - (2 + 5);  // 10 - 7 = 3
cout << result1 << "\n";
cout << result2 << "\n";

Remember

Parentheses always come first. Use them to control the order of your calculations.

Previous

C++ Logical Operators

Next

C++ Strings

This chapter

Overview
64

Lessons

138m

Read time

1. C++ Tutorial2. C++ Introduction3. C++ Getting Started4. C++ Syntax5. C++ Statements6. C++ Output (Print Text)7. C++ Output Numbers8. C++ New Lines9. C++ Comments10. C++ Variables11. C++ Declare Multiple Variables12. C++ Identifiers13. C++ Constants14. C++ User Input15. C++ Data Types16. C++ Numeric Data Types17. C++ Boolean Data Types18. C++ Character Data Types19. C++ String Data Types20. C++ auto21. C++ Operators22. C++ Arithmetic Operators23. C++ Assignment Operators24. C++ Comparison Operators25. C++ Logical Operators26. C++ Operator Precedence27. C++ Strings28. C++ String Concatenation29. C++ Numbers and Strings30. C++ String Length31. C++ Access Strings32. C++ Special Characters33. C++ User Input Strings34. C++ String Namespace35. C++ C-Style Strings36. C++ Math37. C++ Booleans38. C++ Boolean Expressions39. C++ If ... Else40. C++ Else41. C++ Else If42. C++ Short Hand If Else43. C++ Nested If44. C++ Logical Operators in Conditions45. C++ Switch46. C++ While Loop47. C++ Do/While Loop48. C++ For Loop49. C++ Nested Loops50. C++ The foreach Loop51. C++ Break and Continue52. C++ Arrays53. C++ Arrays and Loops54. C++ Omit Array Size55. C++ Array Size56. C++ Multi-Dimensional Arrays57. C++ Structures (struct)58. C++ Enumeration (enum)59. C++ Memory Address60. C++ Pointers61. C++ Dereference62. C++ Modify Pointers63. C++ Memory Management64. C++ new and delete

On this page

Operator PrecedenceWhy Does This Happen?Order of OperationsAnother Example