C++ has a large number of predefined operators.
These operators are used to build expressions.
Some expressions have values which can then be assigned to other variables.
Other expressions may have values, but the useful thing about evaluating the expression is any side effects that may occur. These side effects may change the value of some variables without using assignment.