#include int main() { int magic = 9999; (void)magic; // suppress unused warning int arr[] = { 1234, 5678 }; int *x = &(arr[0]); // x is a pointer to first element of arr printf("*(%lx)=%d\n", (size_t) x, *x); unsigned long x_addr = (size_t) x; // we're going to assume size_t = unsigned long here x_addr += 4; // sizeof(int) == 4 x = (int *) x_addr; printf("*(%lx)=%d\n", (size_t) x, *x); x_addr += 4; x = (int *) x_addr; printf("*(%lx)=%d\n", (size_t) x, *x); return 0; }