I tried
printf(\"%d, %d\\n\", sizeof(char), sizeof(\'c\'));
and got 1, 4 as output. If size of a character is one, why does \'c\'
\'c\'
Th C standard says that a character literal like 'a' is of type int, not type char. It therefore has (on your platform) sizeof == 4. See this question for a fuller discussion.