前邊我就不寫(xiě)了,重點(diǎn)是char c1,c2;c1=197;c2=198;printf("%c,%c",c1,c2);printf("%d,%d",c1,c2);輸出結(jié)果為毛是?,?-59,-58
2 回答
已采納

xungeer29
TA貢獻(xiàn)46條經(jīng)驗(yàn) 獲得超20個(gè)贊
197,198超出ASCII碼范圍了,無(wú)法輸出char型c1,c2,輸出int型超出127就從-128往前計(jì)數(shù)。127+1=-128,所以197輸出-59,198輸出-58

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
那你期望打印出什么呢??
c1 c2 都是字符型。printf 中 %c 表示將它們按照字符來(lái)打印,一般用的字符編碼都是 ASCII,你去查查 197 和 198 在 ASCII 中表示什么字符。如果你的終端顯示不出這些字符就會(huì)打印出問(wèn)號(hào)。
%d 表示按照整型來(lái)打印。char 也是整型,只占用是一字節(jié)。197 和 198 在一字節(jié)中最高位為 1。如果 char 是有符號(hào)整型的話,那它表示的值就是負(fù)值,197 和 198 分別為 -59 -58??雌饋?lái)你這里 char 是有符號(hào)整型,所以最后打印出兩個(gè)負(fù)數(shù)。
- 2 回答
- 0 關(guān)注
- 2126 瀏覽
添加回答
舉報(bào)
0/150
提交
取消