difference between a pointer and reference parameter?

C++ references are intentionally not specified in the standard to be implemented using pointers. A reference is more like a “synonym” to a variable than a pointer to it. This semantics opens some possible optimizations for the compiler when it’s possible to realize that a pointer would be an overkill in some situations.

A few more differences:

  • You can’t assign NULL to a reference.
    This is a crucial difference and the
    main reason you’d prefer one over the
    other.
  • When you take the address of a
    pointer, you get the address of the
    pointer variable. When you take the
    address of a reference, you get the
    address of the variable being
    referred to.
  • You can’t reassign a reference. Once it is initialized it points to the same object for its entire life.

Leave a Comment