|

Anything
that evaluates to a value is an expression in C++.
An expression is said to return a value. Thus, 3+2;
returns the value 5 and so is an expression. All
expressions are statements.
The
myriad pieces of code that qualify as expressions
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 constant 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
returns the value of that assignment (the value
of 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;
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. Evaluating complex expressions.
1:
#include <iostream.h>
2:
int main()
3:
{
4:
int a=0, b=0, x=0, y=35;
5:
cout << "a: " << a << " b: " <<
b;
6:
cout << " x: " << x << " y: "
<< y << endl;
7:
a = 9;
8:
b = 7;
9:
y = x = a+b;
10:
cout << "a: " << a << " b: " <<
b;
11:
cout << " x: " << x << " y: "
<< y << endl;
12:
return 0;
13:
}
Output:
a: 0 b: 0 x: 0 y: 35
a: 9 b: 7 x: 16 y: 16
Analysis: On line 4, the four variables
are declared and initialized. Their values are printed
on lines 5 and 6. On line 7, a is assigned the value
9. One line 8, b is assigned the value 7. On line
9, the values of a and b are summed and the result
is assigned to x. This expression (x = a+b) evaluates
to a value (the sum of a + b), and that value is
in turn assigned to y.
|