考考你,结果是什么,为什么?

作者在 2010-04-10 10:57:28 发布以下内容
#include<string.h>
int main()
{
char a[1000];
int i;
for(i=0;i<1000;i++)
{
a[i]=(-1-i);
}
printf("%d\n",strlen(a));
return 0;
}
默认分类 | 阅读 691 次
文章评论,共5条
韩明海
2010-04-10 19:47
1
是零吧,一个负数存在字符数组中,应该是这样的,
Spygg(作者)
2010-04-11 11:25
2
<div class="quote"><span class="q"><b>韩明海</b>: 是零吧,一个负数存在字符数组中,应该是这样的,</span></div>是255,char的范围是-128~127,strlen是计算到第一个0的字符个数不是在内存中占用的空间
南国利剑
2010-04-13 00:06
3
恩,就是255!
韩明海
2010-04-14 11:16
4
<div class="quote"><span class="q"><b>Spygg</b>: 是255,char的范围是-128~127,strlen是计算到第一个0的字符个数不是在内存中占用的空间</span></div>255是对的,不过你说是计算第一个0的字符个数,不是内存空间,什么意思?<br />
如果你不是赋值(-1-i),而是一个字符('s')的话,他计算的就是占用的空间从a[0]开始到\0,这个长度可能大于1000,而 sizeof是你定义的空间,就是1000
重新分区
2010-04-15 22:29
5
同意是255,就是考char的范围
游客请输入验证码
浏览52032次
文章分类