请教好心人帮我讲讲为什么下面的C语言输出是a1=127,a2=127,b1=-127,b2=129

yolo 发布于 2012/08/10 17:32
阅读 348
收藏 0
#include <stdio.h>
main()
{
char a1,b1;
unsigned char a2,b2;
a1=127; b1=129;
a2=127; b2=129;
printf("a1=%d, a2=%u, b1=%d, b2=%u\n",a1,a2,b1,b2);
}
加载中
0
情天大圣
情天大圣

b1是有符号char,char的范围是-128-127,129溢出了

127 01111111 127

128 10000000 - 128

129 10000001 - 127

yolo
yolo
弄懂了,太感谢了。你真是活雷锋呀。呵呵。
0
hmly
hmly
楼上正解
返回顶部
顶部