# Multiplication operator *

The `*` (multiplication) operator yields
the product of its operands. The operands must have an arithmetic
or enumeration type. The result is not an lvalue. The usual arithmetic
conversions on the operands are performed.

Because the multiplication operator has both associative
and commutative properties, the compiler can rearrange the operands
in an expression that contains more than one multiplication operator.
For example, the expression:

`sites * number * cost`

can be interpreted in any of the following ways:

```
(sites * number) * cost
sites * (number * cost)
(cost * sites) * number
```