In C, the type of a character constant like ‘a’ is actually an int, with size of 4 (or some other implementation-dependent value). In C++, the type is char, with size of 1. This is one of many small differences between the two languages.
As Paul stated, it’s because ‘a’ is an int in C but a char in C++.
I cover that specific difference between C and C++ in something I wrote a few years ago, at: http://david.tribble.com/text/cdiffs.htm