问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<stdio.h>
main()
{
char ch;
ch=('z'-'a')/2+'A';
putchar(ch);
}
#include<stdio.h>
main()
{
char ch;
ch=('z'-'a')/2+'A';
putchar(ch);
}
理解一下:
ch=('z'-'a')/2+'A';
首先计算'z' - 'a',其实是两个字符的ASCII码想减,'z'的ASCII码是122,‘a'的ASCII码是97,想减结果为25
然后计算25/2,由于除号两边都是整数,所以是整除操作,没有小数,结果是12,不是12.5
最后计算12 + 'A',也是进行ASCII码相加,'A'的ASCII码是65,加上12是77,77对应的字符是'M'
所以最终字符ch就是'M'
============
希望有所帮助