References
When a variable is declared as a reference, it becomes an alternative name for an existing variable.
Syntax
Type &newname = existing name;
Initialization
Type &pointer; pointer = variable name;
Pointers
Pointers are used to store the address of a variable.
Syntax
Type *pointer;
Initialization
Type *pointer; pointer = variable name;
The main differences between references and pointers are -
- References are used to refer an existing variable in another name whereas pointers are used to store the address of a variable.
- References cannot have a null value assigned but pointer can.
- A reference variable can be referenced bypass by value whereas a pointer can be referenced but pass by reference
- A reference must be initialized on declaration while it is not necessary in case of a pointer.
- A reference shares the same memory address with the original variable but also takes up some space on the stack whereas a pointer has its own memory address and size on the stack.