【发布时间】:2016-11-29 07:12:13
【问题描述】:
我通过简单的加法和测试数字何时变为负数来找到char 的最大值:
#include<stdio.h>
/*find max value of char by adding*/
int main(){
char c = 1;
while(c + 1 > 0)
++c;
printf("Max c = %d\n",(int)c); /*outputs Max c = -128*/
return 0;
}
while 循环在前面进行测试,所以c+1 第一次为负时它会中断,我们会打印c 的值。但是,程序输出的是负数!
为什么这个程序不输出127?
【问题讨论】:
-
我会为此使用limits.h。但是,如果您坚持,请使用 int 作为计数器并将其与转换为 char
c != (char) c的计数器进行比较