Pass by reference is an argument marshalling strategy whereby a variable's location in memory is passed to a function, rather than a copy of the variable's value, although the function appears in the source code to receive the variable itself rather than a pointer to it.
Passing by reference means that the memory address of a variable is passed rather than a copy of the variable's value.
This typically means that the function can modify the passed variable, assigning a new value to it. However for performance reasons, passing by reference may be useful even if the passed structure is not modified, as with the Pascal var
modifier, and some programming languages have constructs (like the C const modifier) to disallow modification of a variable passed by reference.