quote:
--------------------------------------------------------------------------------
C++ programmers strongly prefer references to pointers. References are cleaner and easier to use, and they do a better job of hiding information.
--------------------------------------------------------------------------------


quote:
--------------------------------------------------------------------------------
References cannot be reassigned, however. If you need to point first to one object and then another, you must use a pointer. References cannot be null, so if there is any chance that the object in question may be null, you must not use a reference. You must use a pointer
--------------------------------------------------------------------------------

this was borrowed from "teach yourself c++ in 21 days"

while passing by value is another story, as it copy the value to a new variable of the same type and let the function deal with the copy not with the original variable, so it doesnt affect the original variable you pass to it

i hope its clear for u