\0代表程序在读取字符串时的终止字符,是一个结束标志,它占用一定的内存,但它本身不能作为字符读取。
1、输出数组符号
先看一个例子:我们定义了两个数组,一个是由子符串构成的数组,一个是由多个字符构成的数组,他们中数组的内容没有任何的差别,都是abcdef,
其中红色代表一段内存条,黑色代表数组所占的内存,可以看出在由字符串构成的数组arr1中,占用7个储存空间,其中\0也占用一个储存空间。而arr2中只占用6个储存空间。
打印出来的结果是
%s代表的是打印字符串,但字符串的打印只有遇见\0才会停止,所以,arr2中f后没有\0,系统会根据他所在的储存位置往后打印,直至遇见\0打印终止。若在arr2的字符串中加入\0,则打印结果与arr1将相同。
Eg:
运行结果则为
同理,若在字符串中插入\0,例如,abc\0def,则打印出来结果为abc。
2、strlen()的使用
(在使用strlen()函数时,需要加上#include<string.h>用来引用)
strlen()的作用是输出字符串的长度,strlen()会输出在\0之前的字符的个数,沿用上面的例子
输出结果为
(这里的22只是一个随机的数字,是内存条在从arr2的第一字符开始,刚好到内存条的第23个时遇见了\0)
若在arr2中加入\0,则内容为
输出结果为