Both are integer data type. Int can be short int, int or long int and size can be 2, 4, 4 or 2, 2, 4 or 2, 4, 8 bytes based on the compiler and machine where as char is always one byte. One more difference is by default char is unsigned and int is a signed if not specified explicitly.