C++ Language/Indirection

Instead of directly referring to a piece of computer memory by the name of some variable, C++ software sometimes refers to it in a more indirect way.

A "pointer" is a variable whose value is a memory address. If  has already been defined as a   variable, defining   will use the "address-of" operator  to obtain the address where   has been stored in memory &mdash; that memory address will get stored in pointer variable.

On the other hand, a "reference" doesn't create any additional storage; instead, it specifies a new name  which now also refers to that same storage location that already existed for.


 * 1) Pointers
 * 2) Typed NULL
 * 3) Arrays
 * 4) Reference Variables
 * 5) Rvalue-References
 * 6) Smart Pointers