Pointer p is assigned address of i. Then p++ increments p by one integer (4 bytes on most systems). The expression (p - &i) calculates the offset between the new pointer address and original address, which is 1 integer - not 1 byte. The difference is measured in the pointer's data type units, so it equals 1.