C语言字符数组长度怎么计算

C语言字符数组长度怎么计算

问题描述:

img

b,6和5
定义字符串会多一个‘\0’,定义char不会。

请各位大佬帮帮我


char a[] = { "happy" };
    char b[] = { 'h','a','p','p','y' };

    printf("%d\n", sizeof(a) / sizeof(a[0])); //6,多1个结束标志\0的长度
    printf("%d\n", sizeof(b) / sizeof(b[0])); //5

字符串会多出\0

1.字符串都是\0结尾的。
2.至于为什么打印不出来,一般printf中的格式控制符%s遇到\0停止打印,所以看不到。
3.欢迎互关交流。