
the memory location is stored in the variable

the contents of the memory location can be obtained through "dereference"

Using * or []

int b = *a;

int b = a[1];

pointer arithmetic

you can add and subtract from pointers to move across elements in an array

Can be a source of many errors, as you might write to a section of memory that is not intended, causing a crash, or worse...

Or you might try to read from memory which has not been allocated or already freed.

You can get the address of a variable using the & operator

int a = 3;

int *b = &a;

*b = 2; // Makes a == 2