When a variable is passed by reference, if the function modifies the value of the incoming parameter, it doesn't modify the address.
Rather, some complex address manipulations take place behind the scenes causing the code to actually modify the value stored at that address in memory.
This modifies the value stored in the original variable. This will be illustrated later.
First, however, I will illustrate the concept of passing by value.