为什么这个程序的输出变化为130?

前端之家收集整理的这篇文章主要介绍了为什么这个程序的输出变化为130?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下代码,在我看来它应该总是输入if语句的真实部分,但是,超过120,它似乎开始执行else子句.为什么会这样?
char x;
for (i=0;i<256;i+=10) {
    x=i;
    if (x==i)
        printf("%d true\n",i);
    else 
        printf("%d false\n",i);
}

输出是:

0 true
10 true
: all numbers from 20 to 100 are true
110 true
120 true
130 false
140 false
: all numbers from 150 to 230 are false
240 false
250 false

解决方法

使用char关键字时,默认情况下,编译器可能使用signed char.有符号字符的范围通常为-128到127,而int的范围要大得多.除了典型的台式PC之外,更多深奥的硬件可能会使用其他值.
原文链接:https://www.f2er.com/c/117315.html

猜你在找的C&C++相关文章