学习ascll码是关于字符和整型变量之间相互转换的问题

int main()
{
char ch1=‘m’;
char ch2=‘m’ - ‘32’;
printf(“请输入一个小写英文字母:%c\n转换后的字母为:%c\n”,ch1,ch2);
return 0;
}
图片说明图片说明

它转换后的字母显示不应该是M吗?怎么会打出了分号。我把源代码中32换成空格就可以打出,为什么?

32不要加单引号,'32'的ascii不是32,空格的ascii码刚好是32,所以你用空格可以,这是碰巧了,正确的做法就是32不加单引号

char ch2=‘m’ - ‘32’;
->
char ch2=‘m’ - ‘0’;

不要加单引
char ch2=‘m'-32