想问一下这个程序的输出结果为什么不是输进去的值

img


问问这个程序输出的时候为什么c1和x输入是250,输出会变成-6,c4输入是256,输出变成0了,刚开始学C++不太懂这个..

实际你对变量赋予的都是越界值,所以输出自然就不是你初始化的值。
比如char c1 = 250,char类型的取值范围只有-128到127,你初始化为250,是不可能的啊。它自动就变成-6了

char是一个字节,有符号,取值范围是-128 ~ 127,c1赋值250都超出范围了,超过127的值会在-128 ~ 127之间继续计算,最终是-6.
unsigned char也是一个字节,无符号,取值范围是0 ~ 255,超出范围跟上面同样的计算。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^