Domanda di colloquio di Darktrace

What's the difference between passing a reference, a pointer or a value to a function in c++?