Expressions are sequences of operators, operands, and punctuators that specify a computation. The evaluation of expressions is based on the operators that the expressions contain and the context in which they are used. An expression can result in a value and can produce side effects. A side effect is a change in the state of the execution environment.
Both ISO C and ISO C++ heed points in the execution sequence at which all side effects of previous evaluations are complete and no side effects of subsequent evaluations will have occurred. Such times are called sequence points. A scalar object may be modified only once between successive sequence points; otherwise, the result is undefined. Sequence points occur at the completion of all expressions that are not part of a larger expression, such as in the following situations:
C++ operators can be defined to behave differently when applied to operands
of class type. This is called operator overloading.
This chapter describes the behavior of operators that are not
overloaded.
Related References