规范的常量;‘\0x6d'规范 但是'\0321882'不规范
#include
int main()
{char a='\0x6d';
char b='\03218';
char c='\0321882';
printf("%c %c\n",a,b);
//printf("%c\n",c);
return 0;
}
d 8
warning :初始化int 到 char 截断
常量中的字符过多
为什么输出的是 d 8而不是单引号内的内容;
int 到char 截断常量值是什么意思?
你这个问题 char类型占一个字符 你用单引号引了多个字符是不合理的吧 所以只识别到你单引号中最后一个字符。 所以两个打印都只打印了最后一个字符。
至于说的int到char的截断 应该与单引号引用这串字符的处理有关,char类型实际底层也存储的是0和1字符 按1个字节的数字通过ASCII码表进行转换,ascii码表了解一下。
除此之外,你要理解int和char的区别,int占四个字节,char占一个字节,把int转成char,肯定是要截断int只取一个字节处理的。