Upon calling a function there are new elements created on the program stack. These include some information about the function and also space (memory locations) for the parameters and the return value.
When handing over a parameter to a function the value of the used variable (or literal) is copied...