Pass by reference using an ampersand in the parameter type. This gives the function access to the original struct, not a copy. Changes modify the caller's data. No copying happens. Example: void move(Point &p) { p.x += 10; }.
The & makes p a reference. Call move(myPoint) and adding 10 to p.x changes the original myPoint.x. Use references when you want to modify the original or when copying is expensive.
For large structs, references save memory and time. Remember: references let functions change your data.