What is the difference between prefix and postfix operators?

前端 未结 13 1748
天命终不由人
天命终不由人 2020-11-22 08:01

The following code prints a value of 9. Why? Here return(i++) will return a value of 11 and due to --i the value should be 10 itself, can anyone ex

13条回答
  •  萌比男神i
    2020-11-22 08:34

    There is a big difference between postfix and prefix versions of ++.

    In the prefix version (i.e., ++i), the value of i is incremented, and the value of the expression is the new value of i.

    In the postfix version (i.e., i++), the value of i is incremented, but the value of the expression is the original value of i.

    Let's analyze the following code line by line:

    int i = 10;   // (1)
    int j = ++i;  // (2)
    int k = i++;  // (3)
    
    1. i is set to 10 (easy).
    2. Two things on this line:
      • i is incremented to 11.
      • The new value of i is copied into j. So j now equals 11.
    3. Two things on this line as well:
      • i is incremented to 12.
      • The original value of i (which is 11) is copied into k. So k now equals 11.

    So after running the code, i will be 12 but both j and k will be 11.

    The same stuff holds for postfix and prefix versions of --.

提交回复
热议问题