Any statement that returns a value is an expression in C++. |
There it is, plain and simple. If it returns a value, it is an expression. All expressions are statements.
The myriad pieces of code that qualify as an expression might surprise you. Here are three examples:
3.2 // returns the value 3.2 PI // float const that returns the value 3.14 SecondsPerMinute // int const that returns 60
Assuming that PI is a const equal to 3.14 and SecondsPerMinute is a constant equal to 60, all three of these statements are expressions.
The complicated expression
x = a + b;
not only adds a and b and assigns the result to x, but yields the value of that assignment (the value in x) as well. Thus, this statement is also an expression. Because it is an expression, it can be on the right side of an assignment operator:
y = x = a + b;
The assignment operator (=) causes the operand on the left side of the assignment operator to have its value changed to the value on the right side of the assignment operator. |
Operand is a mathematical term referring to the part of an expression operated upon by an operator. |
This line is evaluated in the following order:
Add a to b.
Assign the result of the expression a + b to x.
Assign the result of the assignment expression x = a + b to y.
If a, b, x, and y are all integers, and if a has the value 2 and b has the value 5, both x and y will be assigned the value 7. Listing 4.1 illustrates evaluating complex expressions.
a: 0 b: 0 x: 0 y: 35 a: 9 b: 7 x: 16 y: 16
3.145.70.60