您的位置:首页 > 编程语言 > C语言/C++

C语言数组与字符串初始化

2016-01-02 18:20 423 查看
面试的时候遇到的题,以解疑惑:

1、数组初始化

C语言中,如果定义数组时没有初始化,数组元素是否初始化分为:

若是函数体外定义的内置数组,则数组中的元素均自动初始化为零;

若是函数体内定义的内置数组,则其元素无初始化。

2、字符串初始化,看一下三种:

void main()

{

char a[]={'b','o','y'};

char b[]="boy";

char c[]={'b','o','y','\0'};

printf("a的长度是:%d\n",strlen(a));

printf("b的长度是:%d\n",strlen(b));

printf("c的长度是:%d\n",strlen(c));

}

运行结果是:


问题在于:

a 的 结尾没有 NULL 符号,编译器不知道会什么时候结束;

b 这样定义的时候会在字符串末尾自动加上 NULL 即 '\0';

c 这种是自己明确接上去的 结束符 '\0'

最近才发现以前学习的时候是有多疏忽,欢迎赐教
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: