那个没有反斜杠的解释我整理了以上大佬们的意见,我觉得也是编译器直接就是把x32这三ASCII码当成字符常量而不是转义字符来处理,因为我并没有加\,所以不可能会是转义字符,而当成字符常量来处理的话,因为这里有三个字符常量,所以说是三个字节,但char c 中的c只有一个字节,因此输出的时候也只能输出一个字节,按照我的理解,编译器按照从小到大(这里也就是重后往前先读取2再读取3在读取x)的顺序读取并显示,因此显示了字符‘2’的值,与‘\x32’的值相同这里是纯属巧合。。。。
嘛,应该就是这样吧,,,,,感谢大家了!!!
C语言里变量分哪些类型
分整型和浮点型(也就是小数),如int和double
分有符号型和无符号型,即signed和unsigned
分动态和静态,auto和static
分局部和全局,这是作用域
char是有符号型的整型变量,也就是缩小型的int,你用int一样可以,比如
int a = 'A';
printf("%c", a );
因为单引号括起来的字符本质上就是一个数字,'A'就是65,你这样效果也一样
int a = 65;
printf("%c", a );
既然你知道char是整型了,那么整型能怎么用它就能怎么用,比如
char a=2, b=3;
char c= a*b;
printf("c=%d", c );