*(buff+i) (or, alternatively, buff[i]) is the i'th integer in the array, so if you entered, for example, the string "123", read() writes 4 bytes to the beginning of the array, which is only enough to fill one int (buff[0]). buff[1]...buff[99] hold uninitialized values, and you're printing buff[0] .. buff[3] in this case.
read() reinterprets the array as an array of char, so each byte (0x30 for each '0' and 0xa for the endline) is stored in each of the first four bytes of the array. On a system where the size of int is 4 (almost everything today), buff[0] is then equal 0x3030300a which 808464394 decimal (or 0xa303030 for you, which is 170930224 decimal )