首页 > 学院 > 开发设计 > 正文

a[255]的值

2019-11-10 18:38:32
字体:
来源:转载
供稿:网友
int main(){ char a[1000]; int i; for(i=0; i<1000; i++) { a[i] = -1-i; } PRintf("%d",strlen(a)); return 0;}

求输出结果?? 结果为255

char默认为signed(-128~127),-1的补码为0xff,-128为可以存的最小负数,-129以后的会溢出,只存低8位,-256的补码为0x00(‘/0’的ASCII码值为0),因为-257的补码为0xff,接下来的进入新的一轮循环,这不是重点,重点是a[255]的值为0,strlen函数计算字符串的长度,不包括’/0’,a[0]~a[254]中的值不为0,所以strlen(a)的值为255。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表