A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

字符数组
     
   很多人以为字符数组与字符串数组是一回事。但事实并非这样,我们来看一个实例分析:

   在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"结束符。

评分

参与人数 1黑马币 +10 收起 理由
bjwqcpy@126.com + 10 很给力!

查看全部评分

5 个回复

倒序浏览
字符串一定是字符数组,但字符数组不一定是字符串.
字符数组在初始化的时候赋值字符串,会在字符数组中自动追加'\0'结束符.
回复 使用道具 举报
哈哈哈 阿明666
回复 使用道具 举报
了解了,感谢分享
回复 使用道具 举报
说的比较详细,感谢分享
回复 使用道具 举报
个人觉得字符串里的各种长串单词尤其难记!
可变不可变  诶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马