Expressions

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.

Listing 4.1. Evaluating Complex Expressions
 0:  #include <iostream>
 1:
 2:  int main()
 3:  {
 4:      int a=0, b=0, x=0, y=35;
 5:      std::cout << "a: " << a << " b: " << b;
 6:      std::cout << " x: " << x << " y: " << y << std::endl;
 7:      a = 9;
 8:      b = 7;
 9:      y = x = a+b;
10:      std::cout << "a: " << a << " b: " << b;
11:      std::cout << " x: " << x << " y: " << y << std::endl;
12:      return 0;
13:  }


a: 0 b: 0 x: 0 y: 35
a: 9 b: 7 x: 16 y: 16

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. On 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.


..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.70.60