pointers, sizeof() and address in c++ : [This is the link to the program][1]


  [1]: https://github.com/an0nh4x0r/code/blob/master/c_cpp/pointers/2.cpp

The sizeof() function in cpp gives sizeof(int) 4 bytes, in g++ compiler. So i printed the sizeof(1), sizeof(2), sizeof(0) to terminal and i got 4 bytes.

so i tried some pointer arithmetic in the program in above link. I added 1 to a pointer variable. lets say int *p; int a = 10; now i assigned p = &a; now when i printed p it gives 0x24fe04 and when i printed p + 0 its same. But when i tried adding p + 1 and p + 2 it gives different output like this 0x24fe08, 0x24fe0c respectively. Please help me understanding this arithmetic. why p+1, p+2 is not equal as in address it's contributing the same 4 bytes.
 