请看下面这段代码:
#include <stdio.h>
int main(int argc, char **argv)
{
char a = 'a';
char ch = 'Fate';
printf("%c",ch);
printf("%d",sizeof(a));
printf("%d",sizeof('d'));
return 0;
}
正确的结果是e14
那么大家有没有困惑呢?
首先为什么是e不是F,其次最后为什么是4不是1
在C中将字符常量视为int类型而非char类型,当我们把字符常量‘Fate’赋给一个char变量时,那么只有最后8位起作用,所以变量的值为’e’
而最后‘e’是一个字符常量,按照刚才说的它是int类型的,所以结果为4