Definition: In C and C++, parameters to a function are passed by value. This makes a copy of the variable and can be quite slow and inefficient if the variable is large like an array.
Pass by Reference passes in a reference to a variable - this is effectively the address of the variable into the function. This is considerably more efficient than by value and allows the function to change the variable directly, something only possible in C by passing in a pointer to the variable.

