Actually, they come in several sizes:
|Integer Types:||charshort intintlong intlong long int|
|Floating Types:||floatdoublelong double|
Unlike Java, sizes are not dictated by the standard, but by the compiler writer. The only restrictions are that char should be one byte, and, reading left to right, the sizes should never get smaller. They may be the same, though.
Typically int, long int and float are four bytes, with short int at two and double being eight.