C语言初级问题为什么相对应的结果是这样的,

发布时间:2021-02-23 14:43:18

C语言初级问题为什么相对应的结果是这样的,

网友回答

printf(c1=%c,c2=%c\n,c1,c2);这里是要输出ASCII为197和198对应的字符,由于ASCII码只有127个,197和198已经超过了这个范围,因此显示的是一个随机字符
printf(c1=%d,c2=%d\n,c1,c2);这里是要输出c1和c2的值,由于c1和c2是字符型变量只有1个字节的存储空间,c1的值197对应的二进制为1 1000101(只用一个字节表示),由于首位为1,所以是负数,且后面1000101是补码,对应的原码是取反加1,即0111011,换成十进制就是59,所以197按照%d(有符号十进制输出)输出的结果就是-59.对于c2的输出也是一样的,你可以自己计算验证一下
以上问题属网友观点,不代表本站立场,仅供参考!