前边我就不写了,重点是char c1,c2;c1=197;c2=198;printf("%c,%c",c1,c2);printf("%d,%d",c1,c2);输出结果为毛是?,?-59,-58
2 回答
已采纳
xungeer29
TA贡献46条经验 获得超20个赞
197,198超出ASCII码范围了,无法输出char型c1,c2,输出int型超出127就从-128往前计数。127+1=-128,所以197输出-59,198输出-58
onemoo
TA贡献883条经验 获得超454个赞
那你期望打印出什么呢?
c1 c2 都是字符型。printf 中 %c 表示将它们按照字符来打印,一般用的字符编码都是 ASCII,你去查查 197 和 198 在 ASCII 中表示什么字符。如果你的终端显示不出这些字符就会打印出问号。
%d 表示按照整型来打印。char 也是整型,只占用是一字节。197 和 198 在一字节中最高位为 1。如果 char 是有符号整型的话,那它表示的值就是负值,197 和 198 分别为 -59 -58。看起来你这里 char 是有符号整型,所以最后打印出两个负数。
- 2 回答
- 0 关注
- 2059 浏览
添加回答
举报
0/150
提交
取消