#include<stdio.h>
int main()
{
char c1,c2;
c1=197;
c2=198;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}
4
(1)运行时会输出:
c1=a,c2=b
c1=97,c2=98
因为字符a的ASCII码值是97,而b的ASCII码值是98,当c1与c2以字符格式输出时就为a和b
(2)改为c1=197,c2=198运行时会输出:
c1=?,c2=?
c1=-59,c2=-58
因为char 是一字节的,有符号时,其取值为-128~127,但是197>127,198>127,所以溢出197->11000101->-0111010->-0111011->-59
198->11000110->-0111001->-0111010->-58
(3)运行时会输出:
c1=a,c2=b
c1=97,c2=98
输出字符形式时,系统会按照整形数值对应的ASCII码,并输出对应字符