by address ( a variable is necessary to pass the parameter. On exiting the sub-program, the value of any modified parameter is returned to the calling process).
by value ( the parameter is passed by a variable or by a constant. On exiting the sub-program, the value of the parameter even if it is modified is not returned to the calling process).