因为您的编译器默认char为signed char.因此它的值范围是-128到127,而递增127则触发环绕.如果要避免这种情况,请明确,并将变量声明为unsigned char.
请注意,要正确地做到这一点,你也要改变printf; 你打印为有符号int值(%d); 要100%类型正确,您需要匹配类型,因此格式代码应该是%hhd有符号的char,或者%hhu是unsigned char.%d由于varargs的推广规则会有效,但是一直使用它是一个坏习惯%d; 当打印unsigned用%d,你的系统可能会成功,但它会显示大的数值为负,迷惑你.