/* * printing-pointer-arithmetic.c */ #include #include struct foo { char *s; int i; float f; }; int main(int argc, char *argv[]) { int32_t i32; int32_t *i32p = &i32; uint64_t u64; uint64_t *u64p = &u64; struct foo f; struct foo *fp = &f; printf("i32 is stored at %p\n", (void *) i32p); printf("i32 + 1 is stored at %p\n\n", (void *) (i32p+1)); printf("u64 is stored at %p\n", (void *) u64p); printf("u64 + 1 is stored at %p\n\n", (void *) (u64p+1)); printf("f is stored at %p\n", (void *) fp); printf("f+1 is stored at %p\n", (void *) fp + 1); }