int *means "pointer to int". So here buffis a pointer to int. To make things easier, let's also say:
int x = 5;
int *buff = &x;
x, , 5.
&x " x". buff x. , x 0x1000. , buff : 0x1000.
*buff ", ", 5.
&buff " ": , buff .
, , , , .
. . . "100" . " " . ( 100 , 0, .) .
+---+---+---+---+---+--
| | | | | | ...
+---+---+---+---+---+--
100 101 102 103 104 ...
, , , int - . . int a . - . , int *b = &a. int *b , - , , &a, "".
int a = 5;
int *b = &a;
a b
+---+---+---+---+---+--
| 5 | |100| | | ...
+---+---+---+---+---+--
100 101 102 103 104 ...
, . ( , , , , , ..), 99% .
int ...
int a = 5;
char b = 2;
a a a a b
+---+---+---+---+---+--
| 0 | 0 | 0 | 5 | 2 | ...
+---+---+---+---+---+--
100 101 102 103 104 ...