struct Address {
    string city;
    int zip;
};
struct Student {
    int id;
    Address addr;
};
Student pupil; pupil.id = 98765; pupil.addr.city = "Madison"; pupil.addr.zip = 53713;
Declaring
Dynamically allocating space
Assigning to
Dynamically deallocating space
int a[10];
 
int *p = new int[10];
 
for (int i = 0; i < 10; i++) {
    p[i] = i;
    a[i] = 2*i;
}
 
int *q = a;
const int *p int * const p const int * const p
Be careful with testing for equality
Don't dereference uninitialized pointers
Don't dereference NULL pointers
Don't dereference deleted pointers
Watch out for memory leaks