#include〈stdio.h〉
int main()
{char c='z';
printf("%c,c-25);
return 0;
}
运行结果:a
char c='z';
c是char类型,在计算c-25的时候,c提升为int类型,c的ASCII码值是122,所以提升为int后,值也是122
122 - 25 = 97
%c输出char类型,97转成char类型,就是'a' ('a'的ASCII码值是97),所以printf("%c,c-25);显示的就是a
因为-25了
c-25对应于‘z’-25
'z'对应的ASCII码十进制数为122
122-25=97
由于输出的是字符类型,转为对应的字符就是a了。
c表示的是字符‘z’在计算字符加减法时需要转换为十进制ascii码,此时c的表示就是122,减去25,就是97,由于初始是字符所以结束时也要转换为字符,就对应的a
字符转成数字是转的字符的ASCII码,'a'的ASCII码是97,'z'是122