Contents    Page-10    Prev    Next    Page+10    Index   

Reference vs. Value

Actual parameter: the value of the parameter in the calling program. Formal parameter: the name of the parameter in the subroutine.

A call creates a binding between the formal parameter name in the subroutine and the actual parameter value in the call.

Call by reference and call by value have opposite advantages and disadvantages:

Call by: Advantage Disadvantage
Reference Fast for Arrays Possibly Dangerous
Value Safe Slow for Arrays

Usually, we want to use call by value for small values such as numbers and call by reference for arrays.


Main:   i = 3;          foo(j):   j = j + 1;
        foo(i);                   print j;
        print i;


Results:     Value:      j = 4, i = 3
             Reference:  j = 4, i = 4