void fn(int x)) creates a full copy of the variable, leaving the original caller variable unchanged.void fn(int& x)) passes an alias to the original memory location, allowing direct modification.void fn(const Vector<int>& v)) avoids copying large data structures while preventing modifications.