字符串数组中的\0
#include <stdio.h>
int main()
{
char arr1[] = "abc";//定义一个字符串数组
char arr2[] = {'a','b','c'};//定义一个字符数组
printf("%c",arr1);
printf("%s",arr2);
}
我们先看看打印是什么样子的,然后再来讲一下为什么?
为什么arr1打印的只有abc,而arr2后面还有这么多不知道从哪里来的字符串,原因很简单,是因为arr2没有找到\0,我通过调试来给你们演示一下:
我们能看到,arr1有\0,arr2没有\0,因为\0是字符串结束标识,但不是整型的结束标识,这一点要记住!!那么后面的就能讲得清了,arr2没有\0,它就在它的内存中找\0,直到找到\0为止,才结束。
如果在arr2数组中加个\0话会变成什么样呢?
这个时候就打印的值就一样了!