char数组遍历相减得到数出乎自己的意思

char数据遍历取值和‘0’相减得到的是-39,而下面单单一个char类型和'0'相减得到的是9,为什么上面会得到-39呢,有没有人解答一下呀

img

你的char数组初始化错了,你肯定不是想char chars[] = {9,8,7};
应该是char chars[] = {'9','8','7'};
'9'才是字符9

希望以上回复对你有所帮助

chars里面的数字没有加引号,代表的是ASCII码,而‘0’的ASCII码是48,所9-48=-39

这个就是涉及到ASCII码表了,引号的0代表的字符,而数字0代表数字0
也就是说你的9-'0'其实是9-48所以是负数的39,
而'9'-'0'其实是57-48所以是9
下面这个是ASCII你可以对照看一下

img