一、在字符和字符串中是否必须存在?
答:在字符数组中非必要存在,但是在字符串数组中定义的时候必须存在。
字符数组
1、并不要求它的最后一个字符为'\0',甚至可以不包括'\0',像这样写是完全合法的。
char c[5] = {'C','h','i','n','a'};
2、在字符数组中,'\0'必须占据一个字符,如果没有空间就不没有'\0'
图0-在VS2022里面测试的,字符数组str确实没有'\0'
(特别注意:别在VM虚拟机里面测试,虚拟机太强大,直接给你补上尾零,VM牛逼克拉斯)
,
字符串数组
1、'\0'不占空间,没有大小(strlen检测不到),但是字符串的后面一定存在'\0'!!
图1: 证明'\0' 是不占空间的,并且是存在于字符串的尾部。
图2: 把字符串数组塞满,但是还是存在 '\0'
图3、程序独到'\0'才会结束循环,可以证明'\0',确实存在
PS:个人总结,难免会有错误,请各位看官大佬们积极指正,小的感激不尽