Skip to content

Latest commit

 

History

History
65 lines (53 loc) · 2.8 KB

post-increment_pre-increment.md

File metadata and controls

65 lines (53 loc) · 2.8 KB

Post-increment, Pre-increment

Understanding num++ and +num:

  • num++ (Post-increment): Increments the value of num after the expression is evaluated.
  • +num (Unary plus): Returns the value of num without modifying it.

Cases where num++ and +num differ and cause different output:

  1. In expressions involving assignment:

    • Example:
      int num = 5;
      int result1 = num++; // result1 will be 5, num will be 6
      int result2 = +num; // result2 will be 6, num will remain 6
    • Explanation:
      • In the first case, result1 gets the original value of num (5), and then num is incremented to 6.
      • In the second case, result2 simply gets the current value of num, which is 6, without modifying it.
  2. In function calls as arguments:

    • Example:
      void printValue(int value) {
          cout << value << endl;
      }
      
      int num = 5;
      printValue(num++); // Will print 5
      printValue(+num); // Will print 6
    • Explanation:
      • In the first case, the value of num (5) is passed to the function before it's incremented.
      • In the second case, the value of num (6) is passed to the function directly.
  3. In expressions involving logical operators:

    • Example:
      int num = 0;
      bool result1 = num++ && false; // result1 will be false
      bool result2 = +num && false; // result2 will be false
    • Explanation:
      • In the first case, num++ evaluates to 0, which is considered false in a logical context. Since the first operand is false, the entire expression is false.
      • In the second case, +num evaluates to 0, which is still false. However, the evaluation of the second operand (false) is not necessary due to short-circuiting.
  4. In expressions involving the comma operator:

    • Example:
      int num = 5;
      int result1 = num++, num++; // result1 will be 6
      int result2 = +num, +num; // result2 will be 6
    • Explanation:
      • In the first case, the first num++ evaluates to 5, and then the second num++ evaluates to 6. The result of the comma expression is the value of the second operand, which is 6.
      • In the second case, both +num expressions evaluate to 6, but the result of the comma expression is still the value of the second operand, which is 6.

Key points to remember:

  • The difference between num++ and +num lies in when the increment occurs.
  • num++ increments the value after the expression is evaluated, while +num does not modify the value.
  • The choice between num++ and +num depends on the desired behavior in the specific context.

By understanding these cases and their implications, you can effectively use num++ and +num in your C++ code to achieve the intended results.