char ch = 'a';
printf("%d\n", sizeof(ch));
printf("%d\n", sizeof('a'));
输出结果是:

两个的区别是什么?
char ch = 'a';
printf("%d\n", sizeof(ch));
printf("%d\n", sizeof('a'));
输出结果是:

在C标准中:
char 和 字符变量属于字符常量,大小当然是1。
‘a’被称作整形字符常量(integer character constant),相当于是int类型,故为4。
c语言中字符常量是指由一对单引号括起来的单个字符,如“ 'a'”、“'D'”、“'?'”、“'$'”;它代表ASCII字符集中的一个字符,在内存中占4个字节,存放的是字符的ASCII码(整型数据)。C语言规定所有字符常量都作为整型量来处理。