#include <stdio.h> /* Code illustrating simple pointers */ main() { char c1 = 'A'; /* Creates space for c1 & initializes it */ char c2 = 'B'; /* Creates space for c2 & initializes it */ char c3 = 'C'; /* Creates space for c3 & initializes it */ char c4 = 'D'; /* Creates space for c4 & initializes it */ int i = 13; /* Creates space for i & initializes it */ int j; /* Creates space for j */ double d; /* Creates space for d */ char * charPtr; /* Creates space for charPtr */ int * intPtr; /* Creates space for intPtr */ int * intPtr2; /* Creates space for intPtr2 */ double * dPtr; /* Creates space for dPtr */ /* NOTE: all pointers are the same size */ j = i; /* j & i both have 13 (two copies) */ j = 42; /* j now has 42; i unchanged */ intPtr = &i; /* intPtr now points to i */ intPtr2 = &i; /* intPtr2 also now points to i */ /* NOTE: two pointers, both pointing to same memory */ *intPtr2 = 26; /* intPtr2 unchanged; what it points to is changed */ intPtr2 = &j; /* intPtr2 now points to j */ printf ("i: %d; *intPtr: %d; *intPtr2: %d\n", i, *intPtr, *intPtr2); }