- You can change the location where the pointer points to (except if the pointer is `const`)
- A pointer variable is itself an object with an identity (like an integer variable). Thus, stored in memory and can be addressed. You can take a reference/pointer to it.
```c++
inti=42;
int*p=&i;
int**pp=&p;
int***ppp=&pp;// ...
int*&rp=p;// reference to pointer
```
- References bind to a fixed object/data. This cannot be changed.
- A reference is not an object itself. It cannot be referenced.
```c++
inti=42;
int&ri=i;
int&&rri=ri;// Error: cannot bind [...] ‘int&&’ to [...] ‘int’
int&*pri=&ri;// Error: cannot declare pointer to ‘int&’
```
---
# Variables and Datatypes
## Placeholder Type
For variables, `auto` specifies that the type of the variable that is being declared will be