黑马程序员技术交流社区

标题: 字符串数组还是比较简单的 [打印本页]

作者: amazingming    时间: 2016-9-4 22:04
标题: 字符串数组还是比较简单的
字符数组
     
   很多人以为字符数组与字符串数组是一回事。但事实并非这样,我们来看一个实例分析:

   在show出实例前,我这里根据自己的理解给出字符数组的定义。
字符数组就是以单个字符为数组元素的数组,它与字符串数组最大的区别在于:
当定义这两种数组都不给元素个数,即让编译器自动分配空间的时候,编译器自动会在字符串数组后加"\0"结束符号,而字符数组则不会加"\0"结束符号。
五:实践是检验真理唯一的办法
#include

int main (void)
{
    char str[] = {'H','e','l','l','o'};
    char str1[] = "hello";
    printf("sizeof(str[])=%d\n",sizeof(str));//此处打印结果是5
    printf("sizeof(str1[])=%d\n",sizeof(str1));//此处打印结果是6
    while(1)
    {
        if('\0'==str[i])
        {
            break;
        }
        printf("%c",str[i++]);
    }
    return 0;
}
字符数组的个数是5个,编译器不会再后面加"\0"结束符,
字符串数组的元素个数是6,编译自动在后面加上了"\0"结束符。

作者: 小海盗。    时间: 2016-9-4 22:31
字符串一定是字符数组,但字符数组不一定是字符串.
字符数组在初始化的时候赋值字符串,会在字符数组中自动追加'\0'结束符.
作者: qweaschen    时间: 2016-9-6 23:57
哈哈哈 阿明666
作者: 名侦探柯基    时间: 2016-9-7 10:16
了解了,感谢分享
作者: bjwqcpy@126.com    时间: 2016-9-7 19:23
说的比较详细,感谢分享
作者: 梦里花落知多少s    时间: 2016-9-7 19:33
个人觉得字符串里的各种长串单词尤其难记!
可变不可变  诶




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