A C++ function can return a value. The function must be declared to
have the same type as this value. If the function does not return a
value then it must be given the type void.
Information is passed into a function via the parameter-list.
Each parameter must be given a type. If not declared to be otherwise
then parameters are treated as value parameters
If a parameter is a value parameter then the function
operates on a copy of the value of the actual
parameter hence the value of the actual parameter cannot be changed by the
function.
A function prototype provides information to the compiler about the
return type of a function and the types of its parameters. The function
prototype must appear in the program before the function is used.
Any variable declared inside a function is local to that function
and has existence and meaning only inside the function. Hence it can
use an identifier already used in the main program or in any other function
without any confusion with that identifier.