Not so. sizeof(char) != sizeof(int). What you mean is that character literals like 'a' are actually int values, not char ones. And because char can be signed or unsigned by default, most character handling functions like tolower() take ints, not chars.