小菜一枚,就教育

来源:互联网  时间:2016/7/15 6:19:48

关于网友提出的“ 小菜一枚,就教育”问题疑问,本网通过在网上对“ 小菜一枚,就教育”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 小菜一枚,就教育
描述:

本帖最后由 zy799894671 于 2012-05-18 13:00:45 编辑

#include "string.h"
#include "stdio.h"
int main()

    char a[1000]; 
    for(i = 0;i < 1000;i++) 
    { 
        a[i] = -1-i;
    } 
    printf("strlen(a) = %d\n",strlen(a));
}
数组a里的值不是-1到-1000我能理解,但为什么strlen(a)不等于1000,而是等于255呢???是什么时候在数组里加上了一个'\0'的呢???求高人解释~~~~~~ 
解决方案1:


#include
#include
int main()
{
    char a[1000];
    for(i = 0;i < 1000;i++)
    {
        a[i] = -1-i;
    }
    printf("strlen(a) = %d\n",strlen(a));
}

i=0时,a[i]=0xff。i=254时,a[i]=0x01。i=255时,a[i]=0x00——就是它,-256==>0xffffff00,截断成一字节后就是0。 解决方案2:

a[i] = -1-i
a[255] = -1-255=-256=0
既然你能理解数组里的值不是-1到-1000,那你还奇怪什么?

解决方案3:

char字符最大到255,楼主算一下什么时候会加到0,肯定不是1000吧

上一篇k==j==i+5 int i=1,j=2,k=3;
下一篇应用程序CPU使用率100%!
明星图片
相关文章
《 小菜一枚,就教育》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)