C基础-字符串初始化

  在学习过程中,难免会遇到一些挫折,比如字符串的初始化后长度的获取问题。一般来说,我们都会使用strlen函数来获取字符串的长度,但是得到的是否正确,取决于您初始化的字符数组中是否有终止符'\0',没错,就是反斜杠0,下面通过一段简短的代码来分析分析~~

void charArrayInit() {
    char arra1[] = {'x', 'u', 'e', 'n', 'g'};//无结束符
    char arra2[1] = {'A'};//无结束符
    char arra3[1];//有结束符,第一个元素为结束符
    char arra4[3] = {'1', '2'};//有结束符,系统会在第三个位置填充结束符
    char arra5[5] = {'1', '2', '3', '4', '5'};//无结束符
    char arra6[] = "xuensheng";//有结束符
    printf("arra1数组字符串:%s,数组长度:%d\n", arra1, strlen(arra1));
    printf("arra2数组字符串:%s,数组长度:%d\n", arra2, strlen(arra2));
    printf("arra3数组字符串:%s,数组长度:%d\n", arra3, strlen(arra3));
    printf("arra4数组字符串:%s,数组长度:%d\n", arra4, strlen(arra4));
    printf("arra5数组字符串:%s,数组长度:%d\n", arra5, strlen(arra5));
    printf("arra6数组字符串:%s,数组长度:%d\n", arra6, strlen(arra6));
}

打印结果


image.png

通过实验,我们得出以下结论

1、指定数组长度且在花括号中初始化的数组存在一个空位时,系统默认填充结束符'\0'
2、未指定数组长度且使用双引号初始化的数组,系统默认在最后一个位置填充结束符'\0'

推荐阅读
1、不见得你会计算C字符串长度

你可能感兴趣的:(C基础-字符串初始化)