头文件<limits.h>定义了整型变量范围的符号常量,例如UINT_MAX、INT_MIN、INT_MAX等等。可以利用计算机中整数的存储规则来计算,我们以一个字节的char型为例:无符号的数达到最大值1111 1111后再加一,溢出,因而结果为0;有符号的数达到最大值0111 1111后再加一,结果为1000 0000,即最小值。
#include<stdio.h>
#include<limits.h>
int main() {
unsigned char uch_max,uch=1;
char ch_max,ch_min,ch=1;
while(uch) {
uch_max=uch; //记录uchar最大值
uch++;
}
while(ch>0) {
ch_max=ch; //记录char最大值
ch++;
}
ch_min=ch; //得到char最小值
printf("%d %d\n",uch_max,UCHAR_MAX);
printf("%d %d %d %d\n",ch_min,ch_max,CHAR_MIN,CHAR_MAX);
return 0;
}