> (*p) + 1 adds one to it. No it doesn't! (*p) acquires the integer value of whatever is sitting at the address referred to by p and creates a temporary; this temporary is an int. You're adding 1 to the temporary. You're certainly not adding anything at all to either p, or the region in memory region in memory which it refers to. C//