C语言字符串末尾的''\0",很重要,它不占字符串的实际长度,但是比如字节数为5的时候,最后一个字节不为\0的话,那么输出后的就是乱码。
所以,最好主动在字符串末尾加\0的重要性。
但是,哪些情况可以不用加"\0"呢,编译器会自动补上?
1,对于初始化指针,char *p="abcde"; 最后不用加零,自动补上。
2, char s[]="abcd"; 对于这种未指定长度的字符数组,不用指定,编译器会自动加上\0来结束.空间长度为5,实际长度为4.
有一种情况要加上的:
例如,char s[4]="abcd";这样就有错误了,因为总长度为4,但是字符占了4,那\0跑哪儿去了,所以会产生错误。
这些东西我之所以总结,在开发与测试中经常出现错误,字符串的处理是很重要的,都不希望看见乱码。