it mean pass by reference.Parameter use the same memory location as argument.Changes are made to argument as well as parameter.Hence the changes are retained after function end.
Yts, as you say, what you describe is passing by reference. This is returning a reference, meaning that you return a lvalue. Which means you can actually use it with operators like ++ and -- or on the left side of an assignment operators (=, +=, etc).
So the following would be legit code (although depending on the functionality, it might not really be a logical step to make):