c++中 int 转换 char 遇到的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:49:12
int k;
char a='5';
char b='6';
char c;
k=b-a;
c=char(k);
cout<<k<<" "<<c<<endl;
应该两个显示的结果一样,程序能运行,但结果不对

当然不对——注意int类型转化为char类型时是按照ASCII转化的,也就是说,c = char(k) 意味着将c的值变成ASCII值为k的char变量,查ASCII表即可知道c的值
如果改成c = '0' + k,那么显示的结果应该是一样的
补充一下:即使改成这样,结果一样也只是表面现象:两者的变量类型是不同的,显示结果一样并不意味着两者等价~

k=b-a;
c=char(k);

k是个int型,其值为1
而c为char型,其值为字符'1'的ASCII码值
所以不同

输出K时,K为变量,而C则是字符”K”所以不一样.

1 的ASCII是49

一个是字符型输出,一个是整型输出,当然不一样了