低的向高的数据类型转化,可以自动进行,也就是所谓的自动类型提升,高的向低的转化不能自动进行需要强转,char可以自动转化为int,但是int变成char需要强转,你的代码报错处,就是因为类型不匹配造成的,一个char- int,char会先变成int,在做运算,结果就是int类型,但是你把这个结果赋值给了char,所以报错了
char是可以转化为int,但int不能直接转化为char,这里涉及到隐式转换与显式转换,只能从一个范围较小的数字转换到一个范围较大的数字,如16位的char类型到32位的int是可以隐式转换的