热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_45793999
潇潇沐雨寒
6 年前
trueweixin_45793999

c中基本数据类型超出其表示范围:i++至其范围最大值时再+1,会回到其范围最小值
char a[1000];
int i;
for(i=0; i<1000; i++)
{
a[i] = -1-i;
}
printf("%d",strlen(a));
return 0;
当i的值为127时,a[127]的值为-128,而-128 是char 类型数据能表示的最小的负数。当i 继续增加,这时候发生了溢出
当i 继续增加到255 的时候,-256 的补码的低8 位为0。然后当i 增加到256 时,-257 的补码的低8 位全为1,即低八位的补码为0xff,如此开始一轮新的循环

CSDN App 扫码分享
分享
评论
4
打赏
  • 复制链接
  • 举报
下一条动态
立即登录