void simple_pointer_examples() {
int a; // a can contain an integer
int* x; // x can contain the memory address of an integer.
char* y; // y can contain the memory address of a char.
Foo* z; // z can contain the memory address of a Foo object.
a = 10;
x = &a; // '&a' extracts address of a
std::cout << x << std::endl; // memory address of a => 0x7ffe9e25bffc
std::cout << *x << std::endl; // value of a => 10
}