#include <stdio.h>
#include <stdlib.h>
int main()
{
signed char chr=128;
printf("%dn",chr);
return 0;
}
你知道整数极限吗?char
值占用1个字节。一个字节通常是8位。为了通过位数计算极限,计算为2^n-1
,这意味着具有8位的整数在无符号时的范围为0到255。由于变量是有符号的,它会为符号分配一个位,这意味着它的范围从-128到127。由于您将其指定为128,它溢出,回滚到-128。如果程序不使用负数,则应使用signed char
,否则可能需要使用2字节的short
。