[c++] Post-increment and Pre-increment concept?

All four answers so far are incorrect, in that they assert a specific order of events.

Believing that "urban legend" has led many a novice (and professional) astray, to wit, the endless stream of questions about Undefined Behavior in expressions.

So.

For the built-in C++ prefix operator,

++x

increments x and produces (as the expression's result) x as an lvalue, while

x++

increments x and produces (as the expression's result) the original value of x.

In particular, for x++ there is no no time ordering implied for the increment and production of original value of x. The compiler is free to emit machine code that produces the original value of x, e.g. it might be present in some register, and that delays the increment until the end of the expression (next sequence point).

Folks who incorrectly believe the increment must come first, and they are many, often conclude from that certain expressions must have well defined effect, when they actually have Undefined Behavior.

Examples related to c++

Method Call Chaining; returning a pointer vs a reference? How can I tell if an algorithm is efficient? Difference between opening a file in binary vs text How can compare-and-swap be used for a wait-free mutual exclusion for any shared data structure? Install Qt on Ubuntu #include errors detected in vscode Cannot open include file: 'stdio.h' - Visual Studio Community 2017 - C++ Error How to fix the error "Windows SDK version 8.1" was not found? Visual Studio 2017 errors on standard headers How do I check if a Key is pressed on C++

Examples related to conceptual

Post-increment and Pre-increment concept?

Examples related to post-increment

Post-increment and Pre-increment concept? ++i or i++ in for loops ?? How do the post increment (i++) and pre increment (++i) operators work in Java? Incrementing in C++ - When to use x++ or ++x? Difference between pre-increment and post-increment in a loop? Is there a performance difference between i++ and ++i in C? C: What is the difference between ++i and i++?

Examples related to pre-increment

Post-increment and Pre-increment concept? ++i or i++ in for loops ?? How do the post increment (i++) and pre increment (++i) operators work in Java? Incrementing in C++ - When to use x++ or ++x? Difference between pre-increment and post-increment in a loop? Is there a performance difference between i++ and ++i in C? C: What is the difference between ++i and i++?