In C++, functions can return references or pointers to variables, allowing for modifications to the original data through the return value. This is useful for operator overloading and chaining operations. However, care must be taken not to return references to local variables that go out of scope.