第一种情况,给
整型变量赋值字符型数据,例如
int a = 'c';
这种情况会将字符c的ASCII编码值也就是整数99赋值给a
第二种情况,给字符型变量赋值整型数据,例如
char c = 99;
这种情况就是把整数99赋值给c,如果用printf("%c\n", c)来打印c的话,会得到一个字符c
最后,说明一下,字符型其实就是一个取值范围更小的整型,它们的实质都是整数,char默认是1个字节的整数,32位操作系统下,int是默认4个字节的整数,就这么点区别,只不过在打印的时候%c和%d体现出来的差别有些不一样罢了。
追问那int b=322;然后char c=b ;printf("%c",c)输出的为什么是B,B对应的ASCII不是66么?
追答对于这种越界以后的数据,就要看编译器是怎么处理的了,你把数值转化为二进制就知道了
来自:求助得到的回答