定义字符串数组时,缺少'\0'所带到的输出影响,求解,有图如下

定义字符串数组时,缺少'\0'所带来的输出影响,求解,有图如下
本人因对字符串数组定义的遗忘,便编了几行代码,果不其然就出现问题,接下来,上图:
定义字符串数组时,缺少'\0'所带到的输出影响,求解,有图如下
定义字符串数组时,缺少'\0'所带到的输出影响,求解,有图如下
定义字符串数组时,缺少'\0'所带到的输出影响,求解,有图如下
为什么定义字符串数组num2时,没有数组下标,也没有在{}加上'\0'时,会出现这种情况?
但在定义了数组下标(大于数组内元素个数)时,仍未加上'\0'时就是一个正常输出了?定义字符串数组时,缺少'\0'所带到的输出影响,求解,有图如下
------解决思路----------------------
引用:
char a[] = {'a','b'};
 char b[] = {'b','c'};
 char c[] = {'a','b'};
 printf("%d,%d,%d\n",strlen(a),strlen(b),strlen(c));
三个结果不一样,而且都不是2


strlen()只有在遇到  '\0'  才结束,所以strlen(a)完全是未知的,

而你定义了数组的大小,它会默认填充0

“123456789”,这个作为一个字符串也会在末尾加上 '\0'