黑马程序员技术交流社区

标题: 数组啊数组 [打印本页]

作者: 王海江1    时间: 2014-6-25 21:21
标题: 数组啊数组
main()
{
    char  b[]="Hello,you";
    b[5]=0;
    printf("%s\n", b );
}

这道题的内存是如何分配的???????b[5]是什么类型的数组?????
作者: 王海江1    时间: 2014-6-25 21:24
b[5]=0;     0在内存中是\0吗????
作者: 陨石    时间: 2014-6-25 22:00
首先给数组分配内存空间,并自动在结尾加\0,因为Hello,you是9个字符加上默认添加的\0一共占用了10个char空间的内存。b[5]=0; 当整数存入char型时,是支持的,因为在C中char就是用数字存储的,对应各自的ASCII码 0应该对应空格吧
作者: 王海江1    时间: 2014-6-26 14:40
陨石 发表于 2014-6-25 22:00
首先给数组分配内存空间,并自动在结尾加\0,因为Hello,you是9个字符加上默认添加的\0一共占用了10个char空 ...

输出的结果是:Hello,输出字符串时遇到空格应该不结束才对啊
作者: 每天进步一点点    时间: 2014-6-27 11:36

\0的ASCII值是0,所以b[5]='\0';最后只能输出Hello
作者: 完美世界    时间: 2014-6-28 14:11
首先,b[5]是数组元素,这个存储单元是char类型的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2