'a'is a character constant — such as intin the C standard — and is a single character. "a"- this is something else: it is a string literal and actually consists of two characters: aand a terminating null character.
char, . sizeof(char) - 1, , sizeof("stringliteral") , .
, 'a' int char, C , sizeof('a') == 4: , sizeof('a') == sizeof(int). ++, sizeof('a') == sizeof(char).