The increment and decrement operators exist in preﬁx and postﬁx form.

int a = 1;

int b = 1;

int tmp = 0;

tmp = ++a; /* increments a by one, and returns new value; a == 2, tmp == 2 */

tmp = a++; /* increments a by one, but returns old value; a == 3, tmp == 2 */

tmp = --b; /* decrements b by one, and returns new value; b == 0, tmp == 0 */

tmp = b--; /* decrements b by one, but returns old value; b == -1, tmp == 0 */

Note that arithmetic operations do not introduce sequence points, so certain expressions with ++ or -- operators may introduce undeﬁned behaviour.